Hadoop 与 JStrom 的应用场景和区别

Hadoop 与 JStrom 的应用场景和区别


1.Hadoop是处理海量数据的离线分析工具,Storm是分布式的、实时数据流分析工具。一个重在离线分析,一个重在实时数据流分析。
2.Hadoop注重的是离线数据的强大分析功能,Storm强调的是实时数据流的分析。
3.Hadoop实时性不高(分钟级),但大量数据(TB级)处理能力强,Storm实时性高(ms级),但大量数据处理能力比Hadoop差点。
4.数据来源:Hadoop是HDFS上某个文件夹下的可能是成TB的数据,STORM是实时新增的某一笔数据
5.处理过程:HADOOP是分MAP阶段到REDUCE阶段,STORM是由用户定义处理流程,流程中可以包含多个步骤,每个步骤可以是数据源(SPOUT)或处理逻辑(BOLT)
6.是否结束:HADOOP最后是要结束的,STORM是没有结束状态,到最后一步时,就停在那,直到有新数据进入时再从头开始
7.处理速度:HADOOP是以处理HDFS上大量数据为目的,速度慢,STORM是只要处理新增的某一笔数据即可可以做到很快。
8.适用场景:HADOOP是在要处理一批数据时用的,不讲究时效性,要处理就提交一个JOB,STORM是要处理某一新增数据时用的,要讲时效性
9.与MQ对比:HADOOP没有对比性,STORM可以看作是有N个步骤,每个步骤处理完就向下一个MQ发送消息,监听这个MQ的消费者继续处理


说一个典型的场景:
1.假设利用hadoop,则需要先存入hdfs,按每一分钟切一个文件的粒度来算(这个粒度已经极端的细了,再小的话hdfs上会一堆小文件),hadoop开始计算时,1分钟已经过去了,然后再开始调度任务又花了一分钟,然后作业运行起来,假设机器特别多,几钞钟就算完了,然后写数据库假设也花了很少的时间,这样,从数据产生到最后可以使用已经过去了至少两分多钟。
2.而JStrom流式计算则是数据产生时,则有一个程序去一直监控日志的产生,产生一行就通过一个传输系统发给流式计算系统,然后流式计算系统直接处理,处理完之后直接写入数据库,每条数据从产生到写入数据库,在资源充足时可以在毫秒级别完成。


参考(应用场景和区别):https://www.zhihu.com/question/20098507
参考(区别)http://blog.csdn.net/educast/article/details/41723471

猜你喜欢

转载自huangyongxing310.iteye.com/blog/2341060