2015 Bossie评选:最佳开源大数据工具
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015 Bossie评选:最佳开源大数据工具
大数据分布式计算数据存储数据分析开源
摘要:Bossie奖是知名英文IT网站InfoWorld针对开源软件颁发的年度奖项,根据这些软件对开源界的贡献,以及在业界的影响力评判获奖对象。本次InfoWorld评选出了22款最佳的开源大数据工具,像Spark、Storm都名列榜单之上。
InfoWorld在分布式数据处理、流式数据分析、机器学习以及大规模数据分析领域精选出了2015年的开源工具获奖者,下面我们来简单介绍下这些获奖的技术工具。
1. Spark
在Apache的大数据项目中,Spark是最火的一个,特别是像IBM这样的重量级贡献者的深入参与,使得Spark的发展和进步速度飞快。
与Spark产生最甜蜜的火花点仍然是在机器学习领域。去年以来DataFrames API取代SchemaRDD API,类似于R和Pandas的发现,使数据访问比原始RDD接口更简单。
Spark的新发展中也有新的为建立可重复的机器学习的工作流程,可扩展和可优化的支持各种存储格式,更简单的接口来访问机器学习算法,改进的集群资源的监控和任务跟踪。
在Spark1.5的默认情况下,TungSten内存管理器通过微调在内存中的数据结构布局提供了更快速的处理能力。最后,新的网站上有超过100个第三方贡献的链接库扩展,增加了许多有用的功能。
2. Storm
Storm是Apache项目中的一个分布式计算框架项目,主要应用于流式数据实时处理领域。他基于低延时交互模式理念,以应对复杂的事件处理需求。和Spark不同,Storm可以进行单点随机处理,而不仅仅是微批量任务,并且对内存的需求更低。在我的经验中,他对于流式数据处理更有优势,特别是当两个数据源之间的数据快速传输过程中,需要对数据进行快速处理的场景。
Spark掩盖了很多Storm的光芒,但其实Spark在很多流失数据处理的应用场景中并不适合。Storm经常和Apache Kafka一起配合使用。
3. H2O
H2O是一种分布式的内存处理引擎用于机器学习,它拥有一个令人印象深刻的数组的算法。早期版本仅仅支持R语言,3.0版本开始支持Python和Java语言,同时它也可以作为Spark 在后端的执行引擎。
使用H2O的最佳方式是把它作为R环境的一个大内存扩展,R环境并不直接作用于大的数据集,而是通过扩展通讯协议例如REST API与H2O集群通讯,H2O来处理大量的数据工作。
几个有用的R扩展包,如ddply已经被打包,允许你在处理大规模数据集时,打破本地机器上内存容量的限制。你可以在EC2上运行H2O,或者Hadoop集群/YARN集群,或者Docker容器。用苏打水(Spark+ H2O)你可以访问在集群上并行的访问Spark RDDS,在数据帧被Spark处理后。再传递给一个H2O的机器学习算法。
4. Apex
Apex是一个企业级的大数据动态处理平台,即能够支持即时的流式数据处理,也可以支持批量数据处理。它可以是一个YARN的原生程序,能够支持大规模、可扩展、支持容错方法的流式数据处理引擎。它原生的支持一般事件处理并保证数据一致性(精确一次处理、最少一次、最多一次)
以前DataTorrent公司开发的基于Apex的商业处理软件,其代码、文档及架构设计显示,Apex在支持DevOps方面能够把应用开发清楚的分离,用户代码通常不需要知道他在一个流媒体处理集群中运行。
Malhar是一个相关项目,提供超过300种常用的实现共同的业务逻辑的应用程序模板。Malhar的链接库可以显著的减少开发Apex应用程序的时间,并且提供了连接各种存储、文件系统、消息系统、数据库的连接器和驱动程序。并且可以进行扩展或定制,以满足个人业务的要求。所有的malhar组件都是Apache许可下使用。
5. Druid
Druid在今年二月转为了商业友好的Apache许可证,是一个基于“事件流的混合引擎,能够满足OLAP解决方案。最初他主要应用于广告市场的在线数据处理领域,德鲁伊可以让用户基于时间序列数据做任意和互动的分析。一些关键的功能包括低延迟事件处理,快速聚合,近似和精确的计算。
Druid的核心是一个使用专门的节点来处理每个部分的问题自定义的数据存储。实时分析基于实时管理(JVM)节点来处理,最终数据会存储在历史节点中负责老的数据。代理节点直接查询实时和历史节点,给用户一个完整的事件信息。测试表明50万事件数据能够在一秒内处理完成,并且每秒处理能力可以达到100万的峰值,Druid作为在线广告处理、网络流量和其他的活动流的理想实时处理平台。
6. Flink
Flink的核心是一个事件流数据流引擎。虽然表面上类似Spark,实际上Flink是采用不同的内存中处理方法的。首先,Flink从设计开始就作为一个流处理器。批处理只是一个具有开始和结束状态的流式处理的特殊情况,Flink提供了API来应对不同的应用场景,无论是API (批处理)和数据流API。MapReduce的世界的开发者们在面对DataSet处理API时应该有宾至如归的感觉,并且将应用程序移植到Flink非常容易。在许多方面,Flink和Spark 一样,其的简洁性和一致性使他广受欢迎。像Spark一样,Flink是用Scala写的。
7. Elasticsearch
8
Elasticsearch是基于Apache Lucene搜索分布式文件服务器。它的核心,Elasticsearch基于JSON格式的近乎实时的构建了数据索引,能够实现快速全文检索功能。结合开源Kibana BI显示工具,您可以创建令人印象深刻的数据可视化界面。
Elasticsearch易于设置和扩展,他能够自动根据需要使用新的硬件来进行分片。他的查询语法和SQL不太一样,但它也是大家很熟悉的JSON。大多数用户不会在那个级别进行数据交互。开发人员可以使用原生JSON-over-HTTP接口或常用的几个开发语言进行交互,包括Ruby,Python,PHP,Perl,Java,JavaScript等。
8. SlamData
如果你正在寻找一个用户友好的工具,能理解最新流行的NoSQL数据的可视化工具,那么你应该看一看SlamData。SlamData允许您用熟悉的SQL语法来进行JSON数据的嵌套查询,不需要转换或语法改造。
该技术的主要特点之一是它的连接器。从MongoDB,HBase,Cassandra和Apache的Spark,SlamData同大多数业界标准的外部数据源可以方便的进行整合,并进行数据转换和分析数据。你可能会问:“我不会有更好的数据池或数据仓库工具吗?请认清这是在NoSQL领域。
9. Drill