本文罗列了大数据相干的部分热门项目,盘货了该生态圈如今盛行的一些开源产物和工具,并用google热度趋势图表现了它们的受关注程度。从差别的热度趋势,可以相识到每一个产物在近5年来环球受关注的走势,是越来越受器重还是渐渐淡出。
在QCon2016北京站上,Druid开源项目标负责人,Imply连合首创人FangjinYang分享了题为《EvolutionofOpenSourceDataInfrastructure》的主题演讲大数据开源技能演进,探究了开源大数据天下的发展和方向。作为引申,我们盼望在此底子上,利用GoogleTrends的趋势分析本领对一些热门开源工具做了逐一搜刮、对比和排名。
由于大数据令人惊奇的高速发展以及知识范围性,本文没有(也不大概)罗列出这个生态圈里的全部开源范例,比如呆板学习、数据发掘等等无法逐一摆列,也偶然涵盖全部大数据扳连的各个角落,比如OpenStack、Docker等相干大热门。这里保举了一些比力盛行的开源产物,盼望能引起各人爱好和关注。在内容先容上,由于它们多数耳熟能详,也仅仅是抛砖引玉的对每一款产物做了简单的形貌,这些形貌基原来自官网先容以及各类技能网站的推介。
留意
图示来自GoogleTrends的随时间变革的热度趋势图(按环球范围/已往5年/Google网页搜刮)。
图中数字代表相对于图表中指定地区和指定时间内最高点的搜刮热度,比方,热度最高的字词得100分。
按照差别分类,热度更高的工具我们会放在前面先容。
调治与管理服务
Azkaban是一款基于Java编写的任务调治体系任务调治,来自LinkedIn公司,用于管理他们的Hadoop批处理惩罚工作流。Azkaban根据工作的依靠性举行排序,提供友爱的Web用户界面来维护和跟踪用户的工作流程。
YARN是一种新的Hadoop资源管理器,它是一个通用资源管理体系,可为上层应用提供同一的资源管理和调治,办理了旧MapReduce框架的性能瓶颈。它的根本头脑是把资源管理和作业调治/监控的功能分割到单独的保卫进程。
Mesos是由加州大学伯克利分校的AMPLab起首开辟的一款开源聚集管理软件,支持Hadoop、ElasticSearch、Spark、Storm和Kafka等架构。对数据中心而言它就像一个单一的资源池,从物理或假造呆板中抽离了CPU,内存,存储以及别的盘算资源,很轻易创建和有效运行具备容错性和弹性的分布式体系。
Ambari作为Hadoop生态体系的一部分,提供了基于Web的直观界面,可用于设置、管理和监控Hadoop集群。如今已支持大多数Hadoop组件,包罗HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等。
ZooKeeper是一个分布式的应用程序和谐服务,是Hadoop和Hbase的紧张组件。它是一个为分布式应用提供同等性服务的工具,让Hadoop集群内里的节点可以相互和谐。ZooKeeper如今已经成为了Apache的顶级项目,为分布式体系提供了高效可靠且易于利用的协同服务。
Thrift在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了办理facebook体系中各体系间大数据量的传输通讯以及体系之间语言环境差别必要跨平台的特性。
Chukwa是监测大型分布式体系的一个开源数据收罗体系,创建在HDFS/MapReduce框架之上并继承了Hadoop的可伸缩性和可靠性,可以网络来自负型分布式体系的数据,用于监控。它还包罗机动而强大的表现工具用于监控、分析结果。
文件体系
Lustre是一个大规模的、安全可靠的、具备高可用性的集群文件体系,它是由SUN公司开辟和维护的。该项目重要的目标就是开辟下一代的集群文件体系,如今可以支持高出10000个节点,数以PB的数据存储量。
HDFSHadoopDistributedFileSystem,简称HDFS,是一个分布式文件体系。HDFS是一个高度容错性的体系,得当摆设在便宜的呆板上。HDFS能提供高吞吐量的数据访问,非常得当大规模数据集上的应用。
GlusterFS是一个集群的文件体系,支持PB级的数据量。GlusterFS通过RDMA和TCP/IP方式将分布到差别服务器上的存储空间搜集成一个大的网络化并行文件体系。
Alluxio前身是Tachyon,是以内存为中心的分布式文件体系,拥有高性能和容错本领,可以或许为集群框架(如Spark、MapReduce)提供可靠的内存级速率的文件共享服务。
Ceph是新一代开源分布式文件体系,重要目标是计划成基于POSIX的没有单点故障的分布式文件体系,进步数据的容错性并实现无缝的复制。
PVFS是一个高性能、开源的并行文件体系,重要用于并行盘算环境中的应用。PVFS特别为超大数量的客户端和服务器端所计划,它的模块化计划布局可轻松的添加新的硬件和算法支持。
QFSQuantcastFileSystem(QFS)是一个高性能、容错好、分布式的文件体系,用于开辟支持MapReduce处理惩罚大概必要次序读写大文件的应用。
数据搜集
Logstash是一个应用程序日记、变乱的传输、处理惩罚、管理和搜刮的平台。可以用它来同一对应用程序日记举行网络管理,提供了Web接口用于查询和统计。
ScribeScribe是Facebook开源的日记网络体系,它可以或许从各种日记源上网络日记,存储到一个中心存储体系(可以是NFS,分布式文件体系等)上,以便于举行会合统计分析处理惩罚。
Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日记收罗、聚合和传输的体系。Flume支持在日记体系中定制各类数据发送方,用于网络数据。同时,Flume支持对数据举行简单处理惩罚,并写入各种数据担当方(可定制)。
消息体系
RabbitMQ是一个受欢迎的消息署理体系,通常用于应用程序之间大概程序的差别组件之间通过消息来举行集成。RabbitMQ提供可靠的应用消息发送、易于利用、支持全部主流操纵体系、支持大量开辟者平台。
ActiveMQ是Apache出品,号称“最盛行的,最强大”的开源消息集成模式服务器。ActiveMQ特点是速率快,支持多种跨语言的客户端和协议,其企业集成模式和很多先辈的功能易于利用,是一个完全支持JMS1.1和J2EE1.4规范的JMSProvider实现。
Kafka是一种高吞吐量的分布式发布订阅消息体系,它可以处理惩罚斲丧者规模网站中的全部动作流数据,如今已成为大数据体系在异步和分布式消息之间的最佳选择。
数据处理惩罚
Spark是一个高速、通用大数据盘算处理惩罚引擎。拥有HadoopMapReduce所具有的长处,但差别的是Job的中心输出结果可以生存在内存中,从而不再必要读写HDFS,因此Spark能更好地实用于数据发掘与呆板学习等必要迭代的MapReduce的算法。它可以与Hadoop和ApacheMesos一起利用,也可以独立利用。
Kinesis可以构建用于处理惩罚或分析流数据的自界说应用程序,来满意特定需求。AmazonKinesisStreams每小时可从数十万种泉源中连续捕获和存储数TB数据,如网站点击流、财务买卖业务、交际媒体源、IT日记和定位追踪变乱。
Hadoop是一个开源框架,得当运行在通用硬件,支持用简单程序模子分布式处理惩罚跨集群大数据集,支持从单一服务器到上千服务器的程度scaleup。Apache的Hadoop项目已险些与大数据划上了等号,它不绝强大起来,已成为一个完备的生态体系,拥有浩繁开源工具面向高度扩展的分布式盘算。高效、可靠、可伸缩,可以或许为你的数据存储项目提供所需的YARN、HDFS和底子架构,而且运行重要的大数据服务和应用程序。
SparkStreaming实现微批处理惩罚,目标是很方便的创建可扩展、容错的流应用,支持Java、Scala和Python,和Spark无缝集成。SparkStreaming可以读取数据HDFS,Flume,Kafka,Twitter和ZeroMQ,也可以读取自界说数据。
Trident是对Storm的更高一层的抽象,除了提供一套简单易用的流数据处理惩罚API之外,它以batch(一组tuples)为单位举行处理惩罚,如许一来,可以使得一些处理惩罚更简单和高效。
Flink于本年跻身Apache顶级开源项目,与HDFS完全兼容。Flink提供了基于Java和Scala的API,是一个高效、分布式的通用大数据分析引擎。更重要的是,Flink支持增量迭代盘算,使得体系可以快速地处理惩罚数据麋集型、迭代的任务。
Samza出自于LinkedIn,构建在Kafka之上的分布式流盘算框架,是Apache顶级开源项目。可直接利用Kafka和HadoopYARN提供容错、进程隔离以及安全、资源管理。
StormStorm是Twitter开源的一个雷同于Hadoop的及时数据处理惩罚框架。编程模子简单,明显地低落了及时处理惩罚的难度,也是当下最人气的流盘算框架之一。与其他盘算框架相比,Storm最大的长处是毫秒级低延时。
查询引擎
Presto是一个开源的分布式SQL查询引擎,实用于交互式分析查询,可对250PB以上的数据举行快速地交互式分析。Presto的计划和编写是为了办理像Facebook如许规模的贸易数据堆栈的交互式分析和处理惩罚速率的题目。Facebook称Presto的性能比诸如Hive和MapReduce要好上10倍有多。
Drill于2012年8月份由Apache推出,让用户可以利用基于SQL的查询,查询Hadoop、NoSQL数据库和云存储服务。它可以或许运行在上千个节点的服务器集群上,且能在几秒内处理惩罚PB级大概万亿条的数据记录。它可用于数据发掘和即席查询,支持一系列广泛的数据库,包罗HBase、MongoDB、MapR-DB、HDFS、MapR-FS、亚马逊S3、AzureBlobStorage、谷歌云存储和Swift。
Phoenix是一个Java中心层,可以让开辟者在ApacheHBase上实行SQL查询。Phoenix完全利用Java编写,而且提供了一个客户端可嵌入的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBasescan,并编排实行以天生标准的JDBC结果集。
Pig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、转换数据以及存储最闭幕果。Pig最大的作用就是为MapReduce框架实现了一套shell脚本,雷同我们通常认识的SQL语句。
Hive是基于Hadoop的一个数据堆栈工具,可以将布局化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务举行运行。其长处是学习本钱低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开辟专门的MapReduce应用,非常得当数据堆栈的统计分析。
SparkSQL的前身是Shark,SparkSQL扬弃原有Shark的代码并罗致了一些长处,如内存列存储(In-MemoryColumnarStorage)、Hive兼容性等。由于摆脱了对Hive的依靠性,SparkSQL无论在数据兼容、性能优化、组件扩展方面都得到了极大的方便。
Stinger原来叫Tez,是下一代Hive,由Hortonworks主导开辟,运行在YARN上的DAG盘算框架。某些测试下,Stinger能提拔10倍左右的性能,同时会让Hive支持更多的SQL。
Tajo目标是在HDFS之上构建一个可靠的、支持关系型数据的分布式数据堆栈体系,它的重点是提供低耽误、可扩展的ad-hoc查询和在线数据聚集,以及为更传统的ETL提供工具。
ImpalaCloudera声称,基于SQL的Impala数据库是“面向ApacheHadoop的领先的开源分析数据库”。它可以作为一款独立产物来下载,又是Cloudera的贸易大数据产物的一部分。ClouderaImpala可以直接为存储在HDFS或HBase中的Hadoop数据提供快速、交互式的SQL查询。
Elasticsearch是一个基于Lucene的搜刮服务器。它提供了一个分布式、支持多用户的全文搜刮引擎,基于RESTfulweb接口。Elasticsearch是用Java开辟的,并作为Apache答应条款下的开放源码发布,是当前盛行的企业级搜刮引擎。计划用于云盘算中,可以或许到达及时搜刮、稳固、可靠、快速、安装利用方便。
Solr基于ApacheLucene,是一种高度可靠、高度扩展的企业搜刮平台。着名用户包罗eHarmony、西尔斯、StubHub、Zappos、百思买、ATT、Instagram、Netflix、彭博社和Travelocity。
Shark即HiveonSpark,本质上是通过Hive的HQL分析,把HQL翻译成Spark上的RDD操纵,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会由Shark获取并放到Spark上运算。Shark的特点就是快,完全兼容Hive,且可以在shell模式下利用rdd2sql()如许的API,把HQL得到的结果集,继承在scala环境下运算,支持本身编写简单的呆板学习或简单分析处理惩罚函数,对HQL结果进一步分析盘算。
Lucene基于Java的Lucene可以非常敏捷地实行全文搜刮。据官方网站声称,它在当代硬件上每小时可以或许检索高出150GB的数据,它拥有强大而高效的搜刮算法。
内存技能
Terracotta声称其BigMemory技能是“天下上压倒统统的内存中数据管理平台”,支持简单、可扩展、及时消息,声称在190个国家拥有210万开辟职员,环球1000家企业摆设了其软件。
Ignite是一种高性能、整合式、分布式的内存中平台,可用于对大规模数据集实行及时盘算和处理惩罚,速率比传统的基于磁盘的技能或闪存技能高出好几个数量级。该平台包罗数据网格、盘算网格、服务网格、流媒体、Hadoop加快、高级集群、文件体系、消息转达、变乱和数据布局等功能。
GemFirePivotal公布它将开放其大数据套件关键组件的源代码,此中包罗GemFire内存中NoSQL数据库。它已向Apache软件基金会递交了一项提案,以便在“Geode”的名下管理GemFire数据库的核心引擎。
GridGain由ApacheIgnite驱动的GridGrain提供内存中数据布局,用于敏捷处理惩罚大数据,还提供基于同一技能的Hadoop加快器。
数据存储
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为web应用提供可扩展的高性能数据存储办理方案。介于关系数据库和非关系数据库之间的开源产物,黑白关系数据库当中功能最丰富、最像关系数据库的产物。
Redis是一个高性能的key-value存储体系,和Memcached雷同,它支持存储的value范例相对更多,包罗string(字符串)、list(链表)、set(聚集)和zset(有序聚集)。Redis的出现,很洪流平补偿了memcached这类key/value存储的不敷,在部分场合可以对关系数据库起到很好的增补作用。
HDFSHadoop分布式文件体系(HDFS)被计划成得当运行在通用硬件(commodityhardware)上的分布式文件体系。它和现有的分布式文件体系有很多共同点。HDFS是一个高度容错性的体系,得当摆设在便宜的呆板上。HDFS能提供高吞吐量的数据访问,非常得当大规模数据集上的应用。
HBase是Hadoop的数据库,一个分布式、可扩展、大数据的存储。是为有数十亿行和数百万列的超大表计划的,是一种分布式数据库,可以对大数据举行随机性的及时读取/写入访问。提供雷同谷歌Bigtable的存储本领,基于Hadoop和Hadoop分布式文件体系(HDFS)而建。
Neo4j是一个高性能的,NOSQL图形数据库,它将布局化数据存储在网络上而不是表中。自称“天下上第一个和最好的图形数据库”,“速率最快、扩展性最佳的原生图形数据库”,“最大和最有活力的社区”。用户包罗Telenor、Wazoku、ebay、必能宝(PitneyBowes)、MigRaven、思乐(Schleich)和Glowbl等。
Vertica基于列存储高性能和高可用性计划的数据库方案,由于对大规模并行处理惩罚(MPP)技能的支持,提供细粒度、可伸缩性和可用性的上风。每个节点完全独立运作,完全无共享架构,低落了共享资源的体系竞争。
Cassandra是一个肴杂型的非关系的数据库,雷同于Google的BigTable,其重要功能比Dynamo(分布式的Key-Value存储体系)更丰富。这种NoSQL数据库最初由Facebook开辟,现已被1500多家企业构造利用,包罗苹果、欧洲原子核研究构造(CERN)、康卡斯特、电子港湾、GitHub、GoDaddy、Hulu、Instagram、Intuit、Netfilx、Reddit及其他机构。
CouchDB号称是“一款完全拥抱互联网的数据库”,它将数据存储在JSON文档中,这种文档可以通过Web欣赏器来查询,而且用Java来处理惩罚。它易于利用,在分布式上网络上具有高可用性和高扩展性。
Dynamo是一个经典的分布式Key-Value存储体系,具备去中心化、高可用性、高扩展性的特点。Dynamo在Amazon中得到了乐成的应用,可以或许跨数据中心摆设于上万个结点上提供服务,它的计划头脑也被后续的很多分布式体系鉴戒。
AmazonSimpleDB是一个用Erlang编写的高可用的NoSQL数据存储,可以或许减轻数据库管理工作,开辟职员只需通过Web服务哀求实行数据项的存储和查询,AmazonSimpleDB将负责余下的工作。作为一项Web服务,像Amazon的EC2和S3一样,是Amazon网络服务的一部分。
Hypertable是一个开源、高性能、可伸缩的数据库,它采取与Google的Bigtable相似的模子。它与Hadoop兼容,性能超高,其用户包罗电子港湾、百度、高朋、Yelp及别的很多互联网公司。
分析和陈诉工具
Kettle这是一个ETL工具集,它答应你管理来自差别数据库的数据,通过提供一个图形化的用户环境来形貌你想做什么,而不是你想怎么做。作为Pentaho的一个紧张构成部分,如今在国内项目应用上渐渐增多。
Kylin是一个开源的分布式分析引擎,提供了基于Hadoop的超大型数据集(TB/PB级别)的SQL接口以及多维度的OLAP分布式联机分析。最初由eBay开辟并贡献至开源社区。它能在亚秒内查询巨大的Hive表。
Kibana是一个利用Apache开源协议的Elasticsearch分析和搜刮仪表板,可作为Logstash和ElasticSearch日记分析的Web接口,对日记举行高效的搜刮、可视化、分析等各种操纵。
Druid是一个用于大数据及时查询和分析的高容错、高性能、分布式的开源体系,旨在快速处理惩罚大规模的数据,并可以或许实现快速查询和分析。
KNIME的全称是“康斯坦茨信息发掘工具”(KonstanzInformationMiner),是一个开源分析和报表平台。宣称“是任何数据科学家美满的工具箱,高出1000个模块,可运行数百个实例,全面的集成工具,以及先辈的算法”。
Zeppelin是一个提供交互数据分析且基于Web的条记本。方便你做出可数据驱动的、可交互且可协作的风雅文档,而且支持多种语言,包罗Scala(利用ApacheSpark)、Python(ApacheSpark)、SparkSQL、Hive、Markdown、Shell等。
TalendOpenStudio是第一家针对的数据集成工具市场的ETL(数据的提取Extract、传输Transform、载入Load)开源软件供应商。Talend的下载量已高出200万人次,其开源软件提供了数据整合功能。其用户包罗美国国际团体(AIG)、康卡斯特、电子港湾、通用电气、三星、Ticketmaster和韦里逊等企业构造。
Splunk是呆板数据的引擎。利用Splunk可网络、索引和利用全部应用程序、服务器和装备(物理、假造和云中)天生的快速移动型盘算机数据,从一个位置搜刮并分析全部及时和汗青数据。
Pentaho是天下上最盛行的开源商务智能软件,以工作流为核心的、夸大面向办理方案而非工具组件的、基于java平台的贸易智能(BusinessIntelligence)套件。包罗一个webserver平台和几个工具软件:报表、分析、图表、数据集成、数据发掘等,可以说包罗了商务智能的方方面面。
Jaspersoft提供了机动、可嵌入的贸易智能工具,用户包罗浩繁企业构造:高朋、冠群科技、美国农业部、爱立信、期间华纳有线电视、奥林匹克钢铁、内斯拉斯加大学和通用动力公司。
SpagoBISpago被市场分析师们称为“开源首脑”,它提供贸易智能、中心件和质量包管软件,别的还提供相应的JavaEE应用程序开辟框架。
开辟平台
Lumify归Altamira科技公司(以国家安全技能而闻名)全部,这是一种开源大数据整合、分析和可视化平台。
Lingual是Cascading的高级扩展,为Hadoop提供了一个ANSISQL接口极大地简化了应用程序的开辟和集成。Lingual实现了毗连现有的贸易智能(BI)工具,优化了盘算本钱,加快了基于Hadoop的应用开辟速率。
Beam基于Java提供了同一的数据进程管道开辟,而且可以或许很好地支持Spark和Flink。提供很多在线框架,开辟者无需学太多框架。
Cascading是一个基于Hadoop创建的API,用来创建复杂和容错数据处理惩罚工作流。它抽象了集群拓扑布局和设置,使得不消思量背后的MapReduce,就能快速开辟复杂的分布式应用。
HPCC作为Hadoop之外的一种选择,是一个利用集群服务器举行大数据分析的体系,HPCC在LexisNexis内部利用多年,是一个成熟可靠的体系,包罗一系列的工具、一个称为ECL的高级编程语言、以及相干的数据堆栈,扩展性超强。
呆板学习
Hivemall连合了面向Hive的多种呆板学习算法,它包罗了很多扩展性很好的算法,可用于数据分类、递归、保举、k近来邻、非常检测和特性哈希等方面的分析应用。
RapidMiner具有丰富数据发掘分析和算法功能,常用于办理各种的贸易关键题目,办理方案覆盖了各个范畴,包罗汽车、银行、保险、生命科学、制造业、石油和天然气、零售业及快消行业、通讯业、以及公用奇迹等各个行业。
Mahout目标是“为快速创建可扩展、高性能的呆板学习应用程序而打造一个环境”,重要特点是为可伸缩的算法提供可扩展环境、面向Scala/Spark/H2O/Flink的新奇算法、Samsara(雷同R的矢量数学环境),它还包罗了用于在MapReduce上举行数据发掘的浩繁算法。
本日荐文
点击下方图片即可阅读
从小数据分析到大数据平台,这十几年来大数据开源技能是怎样演进的?
我要评论