为什么说 Storm 比 Hadoop 快?

“快”这个词是不明确的,专业属于点有两个层面:

1.时延 , 指数据从产生到运算产生结果的时间,题主的“快”应该主要指这个。

2. 吞吐, 指系统单位时间处理的数据量。

首先明确一点,在消耗资源相同的情况下,一般来说storm的延时低于mapreduce。但是吞吐也低于mapreduce。

Storm的网络直传、内存计算,其时延必然比hadoop的通过hdfs传输低得多;当计算模型比较适合流式时,storm的流式处理,省去了批处理的收集数据的时间;因为storm是服务型的作业,也省去了作业调度的时延。所以从时延上来看,storm要快于hadoop。

说一个典型的场景,几千个日志生产方产生日志文件,需要进行一些ETL操作存入一个数据库。

假设利用hadoop,则需要先存入hdfs,按每一分钟切一个文件的粒度来算(这个粒度已经极端的细了,再小的话hdfs上会一堆小文件),hadoop开始计算时,1分钟已经过去了,然后再开始调度任务又花了一分钟,然后作业运行起来,假设机器特别多,几钞钟就算完了,然后写数据库假设也花了很少的时间,这样,从数据产生到最后可以使用已经过去了至少两分多钟。

而流式计算则是数据产生时,则有一个程序去一直监控日志的产生,产生一行就通过一个传输系统发给流式计算系统,然后流式计算系统直接处理,处理完之后直接写入数据库,每条数据从产生到写入数据库,在资源充足时可以在毫秒级别完成。

当然,跑一个大文件的wordcount,本来就是一个批处理计算的模型,你非要把它放到storm上进行流式的处理,然后又非要让等所有已有数据处理完才让storm输出结果,这时候,你再把它和hadoop比较快慢,这时,其实比较的不是时延,而是比较的吞吐了。

storm是典型的流计算系统,mapreduce是典型的批处理系统。下面对流计算和批处理系统流程。

整个数据处理流程来说大致可以分三个阶段:

1. 数据采集与准备

2. 数据计算(涉及计算中的中间存储), 题主中的“那些方面决定”应该主要是指这个阶段处理方式。

3. 数据结果展现(反馈)

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

2)数据计算阶段,流计算系统(storm)的时延低主要有一下几个方面

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

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

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

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

C: 对于复杂运算

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

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

3)数据结果展现

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

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

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2016-12-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

在树莓派上实现人脸识别

预计在不久后的将来,人脸识别和身份认证技术将在我们的日常生活中扮演一个非常重要的角色。这项技术为我们开辟了一个全新的世界,它几乎适用于我们生活的方方面面。面部识...

4611
来自专栏小白课代表

论文查重,自动生成报告,来看看?

1762
来自专栏腾讯技术工程官方号的专栏

腾讯容器云平台GaiaStack亮相kubeCon

KubeCon + CloudNativeCon 首次登陆中国上海。这意味着中国Kubernetes 爱好者们齐聚上海来参与这场全球范围内最大的 Kuberne...

12.9K3
来自专栏AI研习社

如何在 Kaggle 中高效搜索数据集?快吃下这枚安利

对于关注数据科学的同学来说,Kaggle 上庞大的数据集是一个极好的资源池,但是这么多的数据,如何进行更精准的搜索?近日,Kaggle 官方博客就刊登了 Rac...

2834
来自专栏钱塘大数据

钱塘干货 | 数据收集和处理工具一览

进入大数据时代,调查报道愈加成为信息战。从哪里收集有效数据?如何抽取、筛选、整合、分类大量琐碎的信息?如何分享、存储数据,并实现随取随用?钱塘君整理了一张数据收...

4387
来自专栏阿杜的世界

开发踩坑经验

933
来自专栏杨建荣的学习笔记

使用flashback query巧妙抽取指定数据(r5笔记第75天)

在生产环境中存在着大量的数据,和业务是密切相关的。比如系统中的某个业务流程出现了问题,如果想复现就会显得非常困难,甚至是不太可能的,比如电信系统中存在着大量的客...

3649
来自专栏美团技术团队

业务赋能利器之外卖特征档案

应用背景及现状 美团外卖业务自2013年9月启动至今已运营三年时间。截至2016年12月,美团点评整个外卖平台的日订单超过900万。从发展速度和体量上看,外卖业...

4097
来自专栏大数据

掌握数据处理的新方法!

来自:数据观 https://www.shujuguan.cn/?from=qiehao 一提到数据处理,我们首先想到的就是excel,作为日常必备的办公软件,...

2066
来自专栏马洪彪

eml文件解析实例,简历信息抓取工具

先上工具效果图,如下图所示: ? 背景 某公司使用58同城进行人员招聘,当有应聘人员通过58同城给该公司投简历后,58同城会发送一份邮件到该公司的注册邮箱,邮件...

4037

扫码关注云+社区

领取腾讯云代金券