为什么 Storm 比 Hadoop 快?是由哪几个方面决定的

为什么 Storm 比 Hadoop 快?是由哪几个方面决定的


呼啦一阵风
浏览 606回答 1
1回答

千巷猫影

 “快”这个词是不明确的,专业属于点有两个层面:  1. 延时 , 指数据从产生到运算产生结果的时间,题主的“快”应该主要指这个。  2. 吞吐, 指系统单位时间处理的数据量。  首先明确一点,在消耗资源相同的情况下,一般来说storm的延时低于mapreduce。但是吞吐也低于mapreduce。 我再补充一下。storm是典型的流计算系统,mapreduce是典型的批处理系统。下面对流计算和批处理系统流程  真个数据处理流程来说大致可以分三个阶段:  1. 数据采集与准备  2. 数据计算(涉及计算中的中间存储), 题主中的“那些方面决定”应该主要是指这个阶段处理方式。  3. 数据结果展现(反馈)  1)数据采集阶段,目前典型的处理处理策略:数据的产生系统一般出自页面打点和解析DB的log,流计算将数据采集中消息队列(比如kafaka,metaQ,timetunle)等。批处理系统一般将数据采集进分布式文件系统(比如HDFS),当然也有使用消息队列的。我们暂且把消息队列和文件系统称为预处理存储。二者在延时和吞吐上没太大区别,接下来从这个预处理存储进入到数据计算阶段有很大的区别,流计算一般在实时的读取消息队列进入流计算系统(storm)的数据进行运算,批处理一系统一般会攒一大批后批量导入到计算系统(hadoop),这里就有了延时的区别。  2)数据计算阶段,流计算系统(storm)的延时低主要有一下几个方面(针对题主的问题)  A: storm 进程是常驻的,有数据就可以进行实时的处理
打开App,查看更多内容
随时随地看视频慕课网APP