Storm工作流程
为什么storm的数据来自于消息队列?
Storm的解决问题的scope主要在于流计算,说流计算之前我们先简单的说下一般数据处理系统的过程。
一般数据处理简单说要有几个环节:数据采集,数据计算,结果输出。题主的问题主要是在数据采集和计算之间的对接。
一般来说计算系统(storm)不会自己产生业务数据,业务数据一般来自页面的埋点,或者对数据库log的解析,对于storm来说采集系统是个外部系统。
采集系统是数据的生产者,流计算(storm)是数据的消费者。二者的速度并不是时时刻刻匹配的,中间就需要需要一个缓冲,这个模型下消息队列在适合不过了。
当然为什么一般用kafka,这个超出了这个问题,我们暂不讨论。如果题主要处理的数据不是实时产生的而是静态数据那就没必要使用消息队列了,当然也没必要使用storm,使用Hadoop MR更合适。
关于spout会不会重复读取数据的问题,简单来说消息队列中数据会分partition支持多并发。
题主可以看看kafka的文档,一般消息队列,对一份数据(一个topic,对应离线系统的表)会分不同的parition,不同的spout并发可以读取不同的parition,
当然一个并发可以读取多个parition,但是多个并发读取一个parition会引起混乱这就是题主的问题。也就是实际应用中一个parition只会有一个并发读取。
模式:自动化数据采集 -> 消息队列(作用:缓冲) -> 运算框架
实例:flume - > kafka -> storm 转自:https://zhidao.baidu.com/question/1771687573246188220.html
Storm工作流程的更多相关文章
- Storm工作流程 vs. Spark Stream
看的这个学习课程: http://study.163.com/course/courseLearn.htm?courseId=1002887002#/learn/video?lessonId=1003 ...
- Storm 中什么是-acker,acker工作流程介绍
概述 我们知道storm一个很重要的特性是它能够保证你发出的每条消息都会被完整处理, 完整处理的意思是指: 一个tuple被完全处理的意思是: 这个tuple以及由这个tuple所导致的所有的tupl ...
- storm之 Storm 工作原理
Storm 工作原理 Storm简介 1.Storm是一套分布式的.可靠的,可容错的用于处理流式数据的系统. 2.Storm也是基于C/S架构来进行工作的,C负责将数据处理的方式的jar(Topolo ...
- Yarn框架和工作流程研究
一.概述 将公司集群升级到Yarn已经有一段时间,自己也对Yarn也研究了一段时间,现在开始记录一下自己在研究Yarn过程中的一些笔记.这篇blog主要主要从大体上说说Yarn的基本架构以及其 ...
- struts2工作流程
struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...
- SecondaryNameNode的工作流程
SecondaryNameNode是用来合并fsimage和edits文件来更新NameNode和metadata的. 其工作流程为: 1.secondary通知namenode切换edits文件 2 ...
- gitlab工作流程简介
gitlab工作流程简介 新建项目流程 创建/导入项目 可以选择导入github.bitbucket项目,也可以新建空白项目,还可以从SVN导入项目 建议选择private等级 初始化项目 1.本地克 ...
- Git 工作流程
Git 作为一个源码管理系统,不可避免涉及到多人协作. 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去.”工作流程”在英语里,叫做”workflow”或者”flow”,原意 ...
- Spark基本工作流程及YARN cluster模式原理(读书笔记)
Spark基本工作流程及YARN cluster模式原理 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark基本工作流程 相关术语解释 Spark应用程序相关的几 ...
随机推荐
- Vim 中如何去掉 ^M 字符
基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n如果win下的文档上传到l ...
- 【Zookeeper】源码分析之请求处理链(二)之PrepRequestProcessor
一.前言 前面学习了请求处理链的RequestProcessor父类,接着学习PrepRequestProcessor,其通常是请求处理链的第一个处理器. 二.PrepRequestProcessor ...
- 如何捕获 System.loadLibrary 产生的异常?(转)
如何捕获 System.loadLibrary 产生的异常? 当使用以下代码时,会发现异常处理的代码根本不会被执行: try{ System.loadLibrary("SimpleAuthe ...
- Spring MVC 零配置 / Spring MVC JavaConfig
1. Spring MVC的核心就是DispatcherServlet类,Spring MVC处理请求的流程如下图所示: 2. Spring MVC中典型的上下文层次 当我们初始化一个Dispatch ...
- fisheye Error occurred during initialization of VM Could not reserve enough space for object heap 问题解决!
参考文章:https://answers.atlassian.com/questions/9397/not-enough-heap-space-to-run-fisheye fisheye下载好了之后 ...
- 获取当前日期 java
SimpleDateFormat smpDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFo ...
- 在 iOS 中实现方法链调用
编译:伯乐在线 - 林欣达 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 前言 链式调用(chained calls)是指在函数调用返回了一个对象的时候,使得这个调用链 ...
- apache的mod_proxy 反向代理
在某台机器上(跑着apache)为某个域名(如www.selboo.com.cn)做反向代理正好知道apache有mod_proxy这个 东东于是看了看文档写下了如下的配置文件: <Virtua ...
- The method getServletContext() is undefined for the type HttpServletRequest
request.getServletContext().getRealPath("/") 已经加入了 sun runtime library但是还是提示错误 是因为 写法过时了改成 ...
- 【Spring】SpringMVC之详解AOP
1,AOP简介 Aspect Oriented Programming 面向切面编程.AOP还是以OOP为基础,只不过将共同逻辑封装为组件,然后通过配置的方式将组件动态切入到原有组件中.这样做的有点 ...