mapreduce和storm两者处理数据的区别!

88 篇文章 1 订阅
78 篇文章 0 订阅

数据处理对于从事数据工作的朋友是每天日常工作了,但全量数据处理也常常借助系统软件,比如最常用的是hadoop、hive、apachestorm等等.今天我们大圣众包(www.dashengzb.cn小编就为大家解答下mapreduce和storm这两者之间的区别,它们做数据处理过程的差异!

  首先,先来说下storm是典型的流计算系统,mapreduce是典型的批处理系统。

  下面,我们把整个数据处理流程分三个阶段来说:

  1)数据采集阶段

    目前典型的处理处理策略:数据的产生系统一般出自页面打点和解析DB的log,流计算将数据采集中消息队列(比如kafaka,metaQ,timetunle)等。批处理系统一般将数据采集进分布式文件系统(比如HDFS),当然也有使用消息队列的。我们暂且把消息队列和文件系统称为预处理存储。二者在延时和吞吐上没太大区别,接下来从这个预处理存储进入到数据计算阶段有很大的区别,流计算一般在实时的读取消息队列进入流计算系统(storm)的数据进行运算,批处理一系统一般会攒一大批后批量导入到计算系统(hadoop),这里就有了时延的区别。

  2)数据计算阶段

    流计算系统(storm)的时延低主要有一下几个方面

  A:storm进程是常驻的,有数据就可以进行实时的处理

  mapreduce数据攒一批后由作业管理系统启动任务,Jobtracker计算任务分配,tasktacker启动相关的运算进程

  B:stom每个计算单元之间数据之间通过网络(zeromq)直接传输。

  mapreducemap任务运算的结果要写入到HDFS,在于reduce任务通过网络拖过去运算。相对来说多了磁盘读写,比较慢

  C:对于复杂运算

  storm的运算模型直接支持DAG(有向无环图)

  mapreduce需要肯多个MR过程组成,有些map操作没有意义的

  3)数据结果展现

  流计算一般运算结果直接反馈到最终结果集中(展示页面,数据库,搜索引擎的索引)。而mapreduce一般需要整个运算结束后将结果批量导入到结果集中。

  实际流计算和批处理系统没有本质的区别,像storm的trident也有批概念,而mapreduce可以将每次运算的数据集缩小(比如几分钟启动一次),facebook的puma就是基于hadoop做的流计算系统。

  无论是哪种产品,随着技术的发展,它们的成功也会过去,不断涌现新的技术产品,但mapreduce和storm的未来如何,只有我们拭目以待!



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值