流式计算框架之Strom基本概念
来源:互联网 发布:python库参考手册 编辑:程序博客网 时间:2024/06/06 14:02
转载于 http://www.cnblogs.com/xia520pi/p/4816507.html,谢谢
首先我们通过一个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往往只是在业务需要时调用数据。
- 流式计算框架之Strom基本概念
- Strom实时计算--简述
- 流式计算strom,Strom解决的问题,实现实时计算系统要解决那些问题,离线计算是什么,流式计算什么,离线和实时计算区别,strom应用场景,Strorm架构图和编程模型(来自学习资料)
- 框架之Hibernate 基本概念
- Strom最火的流式处理
- strom之nimbus
- 流式计算框架
- 认识应用框架之基本概念
- strom
- <一>Strom实时计算学习笔记
- strom 分布式的实时计算系统
- 【云计算之数据中心】基本概念和术语
- 流式计算框架调研
- 软件自动化测试框架图之基本概念
- Android框架学习之RxJava(一)基本概念
- strom之Worker、executor、task详解
- Hadoop之MapReduce计算框架
- Strom+Kafka + redis实时计算单词出现频率的案例
- mysql日志系统
- 数据库系统概述
- 将 Spring boot jar包发布成服务
- 学习笔记——Maven实战(六)Gradle,构建工具的未来?
- JAVA反射机制与动态代理
- 流式计算框架之Strom基本概念
- SymPy学习之Advanced Expression Manipulation
- 【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(一) 多租户(QuotaGroup)管理
- 二分查找(面试必备)
- mysql分区
- oracle触发器
- 【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(二) 调度模型
- 网络安全之Tracert
- 拨号相关缩写