首页 > 其他 > 详细

storm学习笔记

时间:2018-11-19 17:06:15      阅读:192      评论:0      收藏:0      [点我收藏+]

1.storm简介

  a:storm是一个开源免费的分布式实时计算系统,它可以轻松的处理无界的数据流。

  b:storm只负责数据的计算,不负责数据的存储。

2.storm应用场景

  实习计算,在线机器学习,连续计算,分布式RPC,ETL等。

3.storm的核心技术组成

技术分享图片

a:Topology(拓扑)

         一个拓扑是一个图的计算,一个拓扑是由若干个Spout,Bolt组成

b:Stream(流)

        流式storm的核心抽象,一个流是一个无界Tuple序列,Tuple可以包含整型,长整型,短整型,字节,字符,双精度数,浮点数,布尔值和字节数组。

c:Spout

        spout是Topology流的数据来源。一般Spout从外部来源读取Tuple,然后提交到Topology。

d:Bolt

      Topology中的所有数据的处理都是在Bolt中完成的。Bolt可以完成数据过滤,业务处理,连接运算,连接,访问数据库等操作。

e:Stream grouping(流分组)

      流分组在Bolt的任务中定义流应该如何分区。

f:Task(任务)

     每个Spout或Bolt在集群中执行许多任务,每个任务对应一个线程的执行。

3.集群架构

技术分享图片

Nimbus:负责资源分配和任务调度

Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的Worker进程。

Task:worker中每一个spout/bolt的线程称为一个task。

流程:

     a:在集群架构中,用户提交到任务到storm,交由nimbus处理。

     b:nimbus通过zookeeper进行查找supervisor的情况,然后选择supervisor进行执行任务。

     c:supervisor会启动一个work进程,在worker进程中启动线程进行执行具体的业务逻辑。

4.工作进程,执行器,任务之间的关系

技术分享图片

 

a:工作进程(worker):在storm中,所提交的Topology将会在supervisor服务器上启动独立的进程来执行。

b:执行器(executor):是在worker中执行的线程,在向Topology添加spout或bolt时可以设置线程数。

d:任务(task):是在执行器中最小的工作单元。

在默认的情况下task和executor的 数量是一样的,也就是说,默认情况下storm会在每个线程上运行一个task。

storm学习笔记

原文:https://www.cnblogs.com/chengwentan/p/9983708.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!