81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储
|
三、Yahoo S4贡献者:Yahoo 简介:S4(Simple Scalable Streaming System)最初是Yahoo!为提高搜索广告有效点击率的问题而开发的一个平台,通过统计分析用户对广告的点击率,排除相关度低的广告,提升点击率。目前该项目刚启动不久,所以也可以理解为是他们提出的一个分布式流计算(Distributed Stream Computing)的模型。 S4的设计目标是: ·提供一种简单的编程接口来处理数据流 ·设计一个可以在普通硬件之上可扩展的高可用集群。 ·通过在每个处理节点使用本地内存,避免磁盘I/O瓶颈达到最小化延迟 ·使用一个去中心的,对等架构;所有节点提供相同的功能和职责。没有担负特殊责任的中心节点。这大大简化了部署和维护。 ·使用可插拔的架构,使设计尽可能的即通用又可定制化。 ·友好的设计理念,易于编程,具有灵活的弹性 Yahoo S4官方网站>>> 四、Twitter?Storm贡献者:Twitter 简介:Storm是Twitter开源的一个类似于Hadoop的实时数据处理框架,它原来是由BackType开发,后BackType被Twitter收购,将Storm作为Twitter的实时数据分析系统。 实时数据处理的应用场景很广泛,例如商品推荐,广告投放,它能根据当前情景上下文(用户偏好,地理位置,已发生的查询和点击等)来估计用户点击的可能性并实时做出调整。 storm的三大作用领域: 1.信息流处理(Stream Processing) Storm可以用来实时处理新数据和更新数据库,兼具容错性和可扩展性,它 可以用来处理源源不断的消息,并将处理之后的结果保存到持久化介质中。 2.连续计算(Continuous Computation) Storm可以进行连续查询并把结果即时反馈给客户,比如将Twitter上的热门话题发送到客户端。 3.分布式远程过程调用(Distributed RPC) 除此之外,Storm也被广泛用于以下方面:
Twitter?Storm官方网站>>> 迭代计算一、Apache Hama简介:Apache Hama是一个纯BSP(Bulk Synchronous Parallel)计算框架,模仿了Google的Pregel。用来处理大规模的科学计算,特别是矩阵和图计算。 ?建立在Hadoop上的分布式并行计算模型。 ?基于 Map/Reduce 和 Bulk Synchronous 的实现框架。 ?运行环境需要关联 Zookeeper、HBase、HDFS 组件。 Hama中有2个主要的模型: – 矩阵计算(Matrix package) – 面向图计算(Graph package) Apache?Hama官方网站>>> 二、Apache?Giraph代码托管地址:?GitHub 简介:Apache Giraph是一个可伸缩的分布式迭代图处理系统,灵感来自BSP(bulk synchronous parallel)和Google的Pregel,与它们 区别于则是是开源、基于 Hadoop 的架构等。 Giraph处理平台适用于运行大规模的逻辑计算,比如页面排行、共享链接、基于个性化排行等。Giraph专注于社交图计算,被Facebook作为其Open Graph工具的核心,几分钟内处理数万亿次用户及其行为之间的连接。 三、HaLoop简介:迭代的MapReduce,HaLoop——适用于迭代计算的Hadoop 。 ?
Hadoop与HaLoop的不同 与Hadoop比较的四点改变: 1.提供了一套新的编程接口,更加适用于迭代计算; HaLoop给迭代计算一个抽象的递归公式:
2.HaLoop的master进行job内的循环控制,直到迭代计算结束; 3.Task Scheduler也进行了修改,使得任务能够尽量满足data locality 4.slave nodes对数据进行cache并index索引,索引也以文件的形式保存在本地磁盘。 HaLoop官网>>> 四、Twister简介:Twister, 迭代式MapReduce框架,Twister是由一个印度人开发的,其架构如下:
在Twister中,大文件不会自动被切割成一个一个block,因而用户需提前把文件分成一个一个小文件,以供每个task处理。在map阶段,经过map()处理完的结果被放在分布式内存中,然后通过一个broker network(NaradaBroking系统)将数据push给各个reduce task(Twister假设内存足够大,中间数据可以全部放在内存中);在reduce阶段,所有reduce task产生的结果通过一个combine操作进行归并,此时,用户可以进行条件判定, 确定迭代是否结束。combine后的数据直接被送给map task,开始新一轮的迭代。为了提高容错性,Twister每隔一段时间会将map task和reduce task产生的结果写到磁盘上,这样,一旦某个task失败,它可以从最近的备份中获取输入,重新计算。 为了避免每次迭代重新创建task,Twister维护了一个task pool,每次需要task时直接从pool中取。在Twister中,所有消息和数据都是通过broker network传递的,该broker network是一个独立的模块,目前支持NaradaBroking和ActiveMQ。 离线计算一、Hadoop?MapReduce简介:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念”Map(映射)”和”Reduce(归约)”,和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 Hadoop?MapReduce官方网站>>> 二、Berkeley Spark简介:Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。 三、DataTorrent简介:DataTorrent基于Hadoop 2.x构建,是一个实时的、有容错能力的数据流式处理和分析平台,它使用本地Hadoop应用程序,而这些应用程序可以与执行其它任务,如批处理,的应用程序共存。该平台的架构如下图所示:
相关文章:DataTorrent 1.0每秒处理超过10亿个实时事件 DataTorrent 将数据分析速度从“实时”提升至“现在时” ?键值存储一、LevelDB
贡献者:Google 简介:Leveldb是一个google实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LMS算法。 LevelDB 是单进程的服务,性能非常之高,在一台4核Q6600的CPU机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。 此处随机读是完全命中内存的速度,如果是不命中 速度大大下降。 LevelDB官方网站>>> 二、RocksDB贡献者:facebook 简介:RocksDB虽然在代码层面上是在LevelDB原有的代码上进行开发的,但却借鉴了Apache HBase的一些好的idea。在云计算横行的年代,开口不离Hadoop,RocksDB也开始支持HDFS,允许从HDFS读取数据。RocksDB支持一次获取多个K-V,还支持Key范围查找。LevelDB只能获取单个Key。 RocksDB除了简单的Put、Delete操作,还提供了一个Merge操作,说是为了对多个Put操作进行合并。 RocksDB提供一些方便的工具,这些工具包含解析sst文件中的K-V记录、解析MANIFEST文件的内容等。RocksDB支持多线程合并,而LevelDB是单线程合并的。 RocksDB官方网站>>> 三、HyperDex贡献者:Facebook
HyperDex是一个分布式、可搜索的键值存储系统,特性如下:
官网:http://hyperdex.org/ 四、TokyoCabinet(编辑:安卓应用网_ASP源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |







