storm学习笔记

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。

posted @ 2018-11-19 16:15  煮酒一笑观花  阅读(276)  评论(0编辑  收藏  举报