跟我学习Storm_Storm基本概念
首先我们通过一个Storm和Hadoop的对比来了解Storm中的基本概念。

接下来我们再来具体看一下这些概念。
- Nimbus:负责资源分配和任务调度。
- Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。
- Worker:运行具体处理组件逻辑的进程。
- Task:worker中每一个spout/bolt的线程称为一个task。在Storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor。
下面这个图描述了以上几个角色之间的关系。

图1.2 Storm角色间关系
- Topology:Storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。
- Spout:在一个topology中产生源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Spout是一个主动的角色,其接口中有个nextTuple()函数,Storm框架会不停地调用此函数,用户只要在其中生成源数据即可。
- Bolt:在一个topology中接受数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt是一个被动的角色,其接口中有个execute(Tuple input)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作。
- Tuple:一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个value list.
- Stream:源源不断传递的tuple就组成了stream。
Hadoop是实现了MapReduce的思想,将数据切片计算来处理大量的离线数据。Hadoop处理的数据必须是已经存放在hdfs上或者类似hbase的数据库中,所以Hadoop实现的时候是通过移动计算到这些存放数据的机器上来提高效率的;而Storm不同,Storm是一个流计算框架,处理的数据是实时消息队列中的,所以需要我们写好一个topology逻辑放在那,接收进来的数据来处理,所以是通过移动数据平均分配到机器资源来获得高效率。
Hadoop的优点是处理数据量大(瓶颈是硬盘和namenode,网络等),分析灵活,可以通过实现dsl,mdx等拼接Hadoop命令或者直接使用hive,pig等来灵活分析数据。适应对大量维度进行组合分析。其缺点就是慢:每次执行前要分发jar包,Hadoop每次map数据超出阙值后会将数据写入本地文件系统,然后在reduce的时候再读进来。
Storm的优点是全内存计算,因为内存寻址速度是硬盘的百万倍以上,所以Storm的速度相比较Hadoop非常快(瓶颈是内存,cpu)。其缺点就是不够灵活:必须要先写好topology结构来等数据进来分析。
Storm 关注的是数据多次处理一次写入,而 Hadoop 关注的是数据一次写入,多次查询使用。Storm系统运行起来后是持续不断的,而Hadoop往往只是在业务需要时调用数据。
跟我学习Storm_Storm基本概念的更多相关文章
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现
Asp.net与Dojo交互:仪器仪表实现 项目中需要用到仪器仪表的界面来显示实时的采集信息值,于是便遍地寻找,参考了fusionchart和anychart之后,发现都是收费的,破解的又没有这些功能 ...
- Python学习:基本概念
Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...
- Docker学习之基本概念
Docker学习之基本概念 作为一个后端noder,不了解docker有点说不过去,这节开始,学习一些docker层面的东西. 什么是docker Docker最初是dotCloud公司创始人Solo ...
- Hadoop YARN学习之核心概念(2)
Hadoop YARN学习之核心概念(2) 1. Hadoop 2.X YARN引入的新服务 1.1 新的ResourceManager纯碎作为资源调度器,是集群资源的唯一仲裁者: 1.2 用户应用程 ...
- jQuery学习笔记之概念(1)
jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...
- (一)Netty源码学习笔记之概念解读
尊重原创,转载注明出处,原文地址:http://www.cnblogs.com/cishengchongyan/p/6121065.html 博主最近在做网络相关的项目,因此有契机学习netty,先 ...
- 菜鸟学习WCF笔记-概念
背景 WCF这个词语一直不陌生,以前也使用过多次在实际的项目中,但是一直没有时间来做个系统的学习,最近抽点时间,看看 蒋金楠的<WCF全面解析>学习下,顺带做些笔记,如有错误,欢迎各路大神 ...
随机推荐
- Android 自定义Application
在android中 自定义Application 常用的作用是1 保存在程序运行中的全局变量 实例:public class GlobalApp extends Application{ privat ...
- T-SQL—理解CTEs
在推出SQLServer2005之后,微软定义了一个新的查询架构叫做公共表表达式--CTE.CTE是一个基于简单查询的临时结果集,在一个简单的插入.更新.删除或者select语句的执行范围内使用.再本 ...
- JDK动态代理和CGLIB的区别
Aspect默认情况下不用实现接口,但对于目标对象,在默认情况下必须实现接口 如果没有实现接口必须引入CGLIB库 我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动 ...
- 十一、Android学习第十天——项目开始(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...
- ab.exe使用
ab.exe是一个性能检测工具,是apache server中的一个小组件,使用简单,方便 下载地址:http://files.cnblogs.com/files/gossip/ab.zi ...
- Linux下ejabberd开机自启(CentOS)
废话少说,Linux下开机自启动Ejabberd步骤如下: 1.从ejabberd安装目录的bin目录拷贝ejabberd.init到/etc/init.d/ejabberd下 [root@imser ...
- css3中变形与动画(一)
css3制作动画的几个属性:变形(transform),过渡(transition)和动画(animation). 首先介绍transform变形. transform英文意思:改变,变形. css3 ...
- [转][业界动态] 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话
本文转自:http://xinsheng.huawei.com/cn/index.php?app=forum&mod=Detail&act=index&id=3264791 P ...
- RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- LED应用照明产品常识关键点
一.基本关注点 1. 寿命LIFE(影响灯具寿命主要因素:热管理.工作温度.工作电压.电源.LED结温) 2. 色彩COLOR(新的LED材料以及改进的生产工艺使得高亮度LED可以生产覆盖整个可见 ...