博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Storm工作流程
阅读量:6832 次
发布时间:2019-06-26

本文共 655 字,大约阅读时间需要 2 分钟。

    为什么storm的数据来自于消息队列?

Storm的解决问题的scope主要在于流计算,说流计算之前我们先简单的说下一般数据处理系统的过程。 一般数据处理简单说要有几个环节:数据采集,数据计算,结果输出。题主的问题主要是在数据采集和计算之间的对接。 一般来说计算系统(storm)不会自己产生业务数据,业务数据一般来自页面的埋点,或者对数据库log的解析,对于storm来说采集系统是个外部系统。 采集系统是数据的生产者,流计算(storm)是数据的消费者。二者的速度并不是时时刻刻匹配的,中间就需要需要一个缓冲,这个模型下消息队列在适合不过了。 当然为什么一般用kafka,这个超出了这个问题,我们暂不讨论。如果题主要处理的数据不是实时产生的而是静态数据那就没必要使用消息队列了,当然也没必要使用storm,使用Hadoop MR更合适。 关于spout会不会重复读取数据的问题,简单来说消息队列中数据会分partition支持多并发。   题主可以看看kafka的文档,一般消息队列,对一份数据(一个topic,对应离线系统的表)会分不同的parition,不同的spout并发可以读取不同的parition, 当然一个并发可以读取多个parition,但是多个并发读取一个parition会引起混乱这就是题主的问题。也就是实际应用中一个parition只会有一个并发读取。
模式:自动化数据采集 -> 消息队列(作用:缓冲) -> 运算框架
实例:flume - > kafka -> storm 转自:

转载地址:http://qvtkl.baihongyu.com/

你可能感兴趣的文章
SDL_AudioSpec结构体分析
查看>>
Autoconf和Automake,自动生成Makefile
查看>>
观影《寒战》
查看>>
create instance 生成创建虚拟机从nova到调用libvirt流程(pycharm debug):
查看>>
今天的学习
查看>>
我的友情链接
查看>>
[Unity] 文件夹图像资源的读取
查看>>
【go语言】wait,wait for me
查看>>
Kubernetes Dashboard 与DNS部署
查看>>
jquery checkbox挖坑
查看>>
You have new mail in /var/spool/mail/root
查看>>
一道关于计算机如何做加法的面试题
查看>>
Django进阶-Forms模块实例
查看>>
Linux系统安装初始化及优化脚本
查看>>
SpringMVC + MyBatis整合
查看>>
远程桌面的开启和故障处理
查看>>
Linux 下 /dev/zero 和 /dev/null
查看>>
java 面试
查看>>
VCenter vSphere Client下为虚拟机添加VMTools过程详解
查看>>
No enclosing instance of type错误
查看>>