加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网_ASP源码网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储

发布时间:2021-01-24 01:14:06 所属栏目:大数据 来源:网络整理
导读:本文一共分为上下两部分。我们将针对大数据开源工具不同的用处来进行分类,并且附上了官网和部分下载链接,希望能给做大数据的朋友做个参考。下面是第一部分。 查询引擎 一、Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache

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 。

?

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储

Hadoop与HaLoop的不同

与Hadoop比较的四点改变:

1.提供了一套新的编程接口,更加适用于迭代计算;

HaLoop给迭代计算一个抽象的递归公式:

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储


2.HaLoop的master进行job内的循环控制,直到迭代计算结束;

3.Task Scheduler也进行了修改,使得任务能够尽量满足data locality

4.slave nodes对数据进行cache并index索引,索引也以文件的形式保存在本地磁盘。

HaLoop官网>>>

四、Twister

简介:Twister, 迭代式MapReduce框架,Twister是由一个印度人开发的,其架构如下:

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储

在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应用程序,而这些应用程序可以与执行其它任务,如批处理,的应用程序共存。该平台的架构如下图所示:

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储

相关文章:DataTorrent 1.0每秒处理超过10亿个实时事件

DataTorrent 将数据分析速度从“实时”提升至“现在时”

?

键值存储

一、LevelDB

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储

贡献者: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

81个开源大数据处理工具汇总(上),包括查询引擎/流式计算/存储

HyperDex是一个分布式、可搜索的键值存储系统,特性如下:

  • 分布式KV存储,系统性能能够随节点数目线性扩展
  • 吞吐和延时都能秒杀现在风头正劲的MonogDB,吞吐甚至强于Redis
  • 使用了hyperspace hashing技术,使得对存储的K-V的任意属性进行查询成为可能

官网:http://hyperdex.org/

四、TokyoCabinet

(编辑:安卓应用网_ASP源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读