⼤数据平台常见开源⼯具集锦(强烈推荐收藏)引⾔
⼤数据平台是对海量结构化、⾮结构化、半机构化数据进⾏采集、存储、计算、统计、分析处
理的⼀系列技术平台。⼤数据平台处理的数据量通常是TB级,甚⾄是PB或EB级的数据,这是
传统数据仓库⼯具⽆法处理完成的,其涉及的技术有分布式计算、⾼并发处理、⾼可⽤处理、
集、实时性计算等,汇集了当前IT领域热门流⾏的各类技术。
此⽚⽂章整理出了⼤数据平台常见的⼀些开源⼯具,并且依据其主要功能进⾏分类,以便⼤数
据学习者及应⽤者快速查和参考。
⼤数据平台常见的⼀些⼯具汇集
主要包含:语⾔⼯具类、数据采集⼯具、ETL⼯具、数据存储⼯具、分析计算、查询应⽤及运维
监控⼯具等。以下对各⼯具作为简要的说明。
⼀语⾔⼯具类
1
Java编程技术
Java编程技术是⽬前使⽤最为⼴泛的⽹络编程语⾔之⼀,是⼤数据学习的基础。Java具有简单
性、⾯向对象、分布式、健壮性、安全性、平台独⽴与可移植性、多线程、动态性等特点,拥
有极⾼的跨平台能⼒,是⼀种强类型语⾔,可以编写桌⾯应⽤程序、Web应⽤程序、分布式系
统和嵌⼊式系统应⽤程序等,是⼤数据⼯程师最喜欢的编程⼯具,最重要的是,Hadoop以及其
他⼤数据处理技术很多都是⽤Java,因此,想学好⼤数据,掌握Java基础是必不可少的。
2
Linux命令
对于⼤数据开发通常是在Linux环境下进⾏的,相⽐Linux操作系统,Windows操作系统是封闭
的操作系统,开源的⼤数据软件很受限制,因此,想从事⼤数据开发相关⼯作,还需掌握Linux
基础操作命令。
3
Scala
Scala是⼀门多范式的编程语⾔,⼀⽅⾯吸收继承了多种语⾔中的优秀特性,⼀⽅⾯⼜没有抛弃
Java 这个强⼤的平台,⼤数据开发重要框架Spark是采⽤Scala语⾔设计的,想要学好Spark框
架,拥有Scala基础是必不可少的,因此,⼤数据开发需掌握Scala编程基础知识!
4
Python与数据分析
Python是⾯向对象的编程语⾔,拥有丰富的库,使⽤简单,应⽤⼴泛,在⼤数据领域也有所应
⽤,主要可⽤于数据采集、数据分析以及数据可视化等,因此,⼤数据开发需学习⼀定的
Python知识。
⼆数据采集类⼯具
1)Nutch是⼀个开源Java 实现的搜索引擎。它提供了我们运⾏⾃⼰的搜索引擎所需的全部⼯具,包括全⽂搜索和Web爬⾍。
2)Scrapy是⼀个为了爬取⽹站数据,提取结构性数据⽽编写的应⽤框架,可以应⽤在数据挖掘,信息处理或存储历史数据等⼀系列的程序中。⼤数据的采集需要掌握Nutch与Scrapy爬⾍技术。
三ETL⼯具
1
Sqoop
Sqoop是⼀个⽤于在Hadoop和关系数据库服务器之间传输数据的⼯具。它⽤于从关系数据库(如MyS
QL,Oracle)导⼊数据到Hadoop HDFS,并从Hadoop⽂件系统导出到关系数据库,学习使⽤Sqoop对关系型数据库数据和Hadoop之间的导⼊有很⼤的帮助。
2
Kettle
Kettle是⼀个ETL⼯具集,它允许你管理来⾃不同数据库的数据,通过提供⼀个图形化的⽤户环境来描述你想做什么,⽽不是你想怎么做。作为Pentaho的⼀个重要组成部分,现在在国内项⽬应⽤上逐渐增多。其数据抽取⾼效稳定。
四数据存储类⼯具
1
Hadoop分布式存储与计算
Hadoop实现了⼀个分布式⽂件系统(Hadoop Distributed File System),简称HDFS。Hadoop的框架最核⼼的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce 则为海量的数据提供了计算,因此,需要重点掌握,除此之外,还需要掌握Hadoop集、Hadoop集管理、YARN以及Hadoop⾼级管理等相关技术与操作!
2
Hive
Hive是基于Hadoop的⼀个数据仓库⼯具,可以将结构化的数据⽂件映射为⼀张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进⾏运⾏。相对于⽤Java代码编写MapReduce来说,Hive的优势明显:快速开发,⼈员成本低,可扩展性(⾃由扩展集规模),延展性(⽀持⾃定义函数)。⼗分适合数据仓库的统计分析。对于Hive需掌握其安装、应⽤及⾼级操作等。
3
ZooKeeper
ZooKeeper 是⼀个开源的分布式协调服务,是Hadoop和HBase的重要组件,是⼀个为分布式应⽤提供⼀致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组件服务等,在⼤数据开发中要掌握ZooKeeper的常⽤命令及功能的实现⽅法。
4
HBase
HBase是⼀个分布式的、⾯向列的开源数据库,它不同于⼀般的关系数据库,更适合于⾮结构化数据存储的数据库,是⼀个⾼可靠性、⾼性能、⾯向列、可伸缩的分布式存储系统,⼤数据开发需掌握HBase基础知识、应⽤、架构以及⾼级⽤法等。
5
Redis
Redis是⼀个Key-Value存储系统,其出现很⼤程度补偿了Memcached这类Key/Value存储的不⾜,在部分场合可以对关系数据库起到很好的补充作⽤,它提供了
Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使⽤很⽅便,⼤数据开发需掌握Redis的安装、配置及相关使⽤⽅法。
6
Kafka
Kafka是⼀种⾼吞吐量的分布式发布订阅消息系统,其在⼤数据开发应⽤上的⽬的是通过Hadoop的并⾏加载机制来统⼀线上和离线的消息处理,也是为了通过集来提供实时的消息。⼤数据开发需掌握Kafka架构原理及各组件的作⽤和使⽤⽅法及相关功能的实现。
7
Neo4j
Neo4j是⼀个⾼性能的,NoSQL图形数据库,具有处理百万和T级节点和边的⼤尺度处理⽹络分析能⼒。它是⼀个嵌⼊式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在⽹络(从数学⾓度叫做图)上⽽不是表中。Neo4j因其嵌⼊式、⾼性能、轻量级等优势,越来越受到关注。
8
Cassandra
Cassandra是⼀个混合型的⾮关系的数据库,类似于Google的BigTable,其主要功能⽐Dynamo(分布式的Key-Value存储系统)更丰富。这种NoSQL数据库最初由Facebook开发,现已被1500多家企业组织使⽤,包括苹果、欧洲原⼦核研究组织(CERN)、康卡斯特、电⼦港湾、GitHub、GoDaddy、Hulu、Instagram、Intuit、Netflix、Reddit等。是⼀种流⾏的分布式结构化数据存储⽅案。
9
SSM
SSM框架是由Spring、Spring MVC、MyBatis三个开源框架整合⽽成,常作为数据源较简单的Web项⽬的框架。⼤数据开发需分别掌握Spring、Spring MVC、MyBatis三种框架的同时,再使⽤SSM进⾏整合操作。
五分析计算类⼯具
1
Spark
Spark是专为⼤规模数据处理⽽设计的快速通⽤的计算引擎,其提供了⼀个全⾯、统⼀的框架⽤于管理各种不同性质的数据集和数据源的⼤数据处理的需求,⼤数据开发需掌握Spark基础、SparkJob、Spark RDD部署与资源分配、Spark Shuffle、Spark内存管理、Spark⼴播变量、Spark SQL、Spark Streaming以及Spark ML等相关知识。
2
Storm
Storm 是⾃由的开源软件,⼀个分布式的、容错的实时计算系统,可以⾮常可靠的处理庞⼤的数据流,
⽤于处理Hadoop的批量数据。Storm⽀持许多种编程语⾔,并且有许多应⽤领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调⽤协议,⼀种通过⽹路从远程计算机程序上请求服务)、ETL等等。Storm的处理速度惊⼈:经测试,每个节点每秒钟可以处理100万个数据元组。
3目前行的php开发工具有
Mahout
Mahout⽬的是“为快速创建可扩展、⾼性能的机器学习应⽤程序⽽打造⼀个环境”,主要特点是为可伸缩的算法提供可扩展环境、⾯向Scala/Spark/H2O/Flink的新颖算法、Samsara(类似R 的⽮量数学环境),它还包括了⽤于在MapReduce上进⾏数据挖掘的众多算法。
4
Pentaho
Pentaho是世界上最流⾏的开源商务智能软件,以⼯作流为核⼼的、强调⾯向解决⽅案⽽⾮⼯具组件的、基于Java平台的BI套件。包括⼀个Web Server平台和⼏个⼯具软件:报表、分析、图表、数据集成、数据挖掘等,可以说包括了商务智能的⽅⽅⾯⾯。Pentaho的⼯具可以连接到NoSQL数据库。⼤数据开发需了解其使⽤⽅法。
六查询应⽤类⼯具
1
Avro与Protobuf
Avro与Protobuf均是数据序列化系统,可以提供丰富的数据结构类型,⼗分适合做数据存储,还可进⾏不同语⾔之间相互通信的数据交换格式,学习⼤数据,需掌握其具体⽤法。
2
Phoenix
Phoenix是⽤Java编写的基于JDBC API操作HBase的开源SQL引擎,其具有动态列、散列加载、查询服务器、追踪、事务、⽤户⾃定义函数、⼆级索引、命名空间映射、数据收集、时间戳列、分页查询、跳跃查询、视图以及多租户的特性,⼤数据开发需掌握其原理和使⽤⽅法。
3
Kylin
Kylin是⼀个开源的分布式分析引擎,提供了基于Hadoop的超⼤型数据集(TB/PB级别)的SQL 接⼝以及多维度的OLAP分布式联机分析。最初由eBay开发并贡献⾄开源社区。它能在亚秒内查询巨⼤的Hive表。
4
Zeppelin
Zeppelin是⼀个提供交互数据分析且基于Web的笔记本。⽅便你做出可数据驱动的、可交互且可协作的精美⽂档,并且⽀持多种语⾔,包括 Scala(使⽤ Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
5
ElasticSearch
ElasticSearch是⼀个基于Lucene的搜索服务器。它提供了⼀个分布式、⽀持多⽤户的全⽂搜索引擎,基于RESTful Web接⼝。ElasticSearch是⽤Java开发的,并作为Apache许可条款下的开放源码发布,是当前流⾏的企业级搜索引擎。设计⽤于云计算中,能够达到实时搜索、稳定、可靠、快速、安装使⽤⽅便。
6
Solr
Solr基于Apache Lucene,是⼀种⾼度可靠、⾼度扩展的企业搜索平台, 是⼀款⾮常优秀的全⽂搜索引擎。知名⽤户包括eHarmony、西尔斯、StubHub、Zappos、百思买、AT&T、Instagram、Netflix、彭博社和Travelocity。⼤数据开发需了解其基本原理和使⽤⽅法。
七数据管理类⼯具
Azkaban
Azkaban是由linked开源的⼀个批量⼯作流任务调度器,它是由三个部分组成:Azkaban Web Server(管理服务器)、Azkaban Executor Server(执⾏管理器)和MySQL(关系数据库),可⽤于在⼀个⼯作流内以⼀个特定的顺序运⾏⼀组⼯作和流程,可以利⽤Azkaban来完成⼤数据的任务调度,⼤数据开发需掌握Azkaban的相关配置及语法规则。
2
Mesos
Mesos 是由加州⼤学伯克利分校的AMPLab⾸先开发的⼀款开源集管理软件,⽀持Hadoop、ElasticSearch、Spark、Storm 和Kafka等架构。对数据中⼼⽽⾔它就像⼀个单⼀的资源池,从物理或虚拟机器中抽离了CPU、内存、存储以及其它计算资源,很容易建⽴和有效运⾏具备容错性和弹性的分布式系统。
3
Sentry
Sentry 是⼀个开源的实时错误报告⼯具,⽀持 Web 前后端、移动应⽤以及游戏,⽀持Python、OC、Java、Go、Node、Django、RoR 等主流编程语⾔和框架,还提供了 GitHub、Slack、Trello 等常见开发⼯具的集成。使⽤Sentry对数据安全管理很有帮助。
⼋运维监控类⼯具
Flume是⼀款⾼可⽤、⾼可靠、分布式的海量⽇志采集、聚合和传输的系统,Flume⽀持在⽇志系统中定制各类数据发送⽅,⽤于收集数据;同时,Flume提供对数据进⾏简单处理,并写到各种数据接受⽅(可定制)的能⼒。⼤数据开发需掌握其安装、配置以及相关使⽤⽅法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论