Storm教程(一)

目录

一、什么是Storm

二、名词术语理解

三、配置storm集群 


一、什么是Storm

1、定义:Storm是一个分布式实时计算系统。Storm能轻松可靠地处理无界的数据流,就像Hadoop对数据进行批处理;

2、什么是离线计算?流式计算?

离线计算:批量获取数据、传输数据、周期性批量计算数据     代表:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据

流式计算:数据实时产生、传输、计算、展示      代表:Flume实时获取数据、Kafka实时数据存储、Storm/JStorm实时数据计算、Redis实时结果缓存、持久化存储(mysql)。

3、storm与hadoop对比

 

Storm

hadoop

角色

Nimbus

JobTracker

 

Supervisor

TaskTracker

 

Worker

Child

应用名称

Topology

Job

编程接口

Spout/Bolt

Mapper/Reducer

4、应用场景:

实时分析,在线机器学习,连续计算,分布式RPC,ETL等。Apache Storm速度很快:基准测试表明它每秒可处理每个节点超过一百万个元组

5、实时流常见架构

二、名词术语理解

1、元组(Tuple)

是消息传递的基本单元,Storm使用元组作为其数据模型,元组支持所有的基本类型、字符串和字节数组作为字段值,只要实现类型的序列化接口就可以使用该类型的对象。元组本来应该是一个key-value的Map,但是由于各个组件间传递的元组的字段名称已经事先定义好,所以只要按序把元组填入各个value即可,所以元组是一个valueList

2、流(stream)

流是Storm的核心抽象,是一个无界的元组系列。源源不断传递的元组就组成了流,在分布式环境中并行地进行创建和处理。

3、水龙头(Spout)

Spout是拓扑的流的来源,是产生源数据流的组件。Spout会从外部数据源中读取数据,然后转换为拓扑内部的源数据。如果Storm处理元组失败,可靠的Spout能够重新发射,而不可靠的Spout就尽快忘记发出的元组。是否调用Ack()和fail()方法。

4、转接头(Bolt)

拓扑中处理都在Bolt中完成,Bolt是流的处理节点,从一个拓扑接收数据,然后执行处理的组件。Bolt可以过滤、业务处理、连接运算、连接与访问数据库等任何操作,类似于map和reduce的结合。简单的流处理一个bolt可以处理,复杂的流需要多个bolt连接处理。

5、拓扑(topology)

拓扑(Topology)是Storm中运行的一个实时应用程序,因为各个组件间的消息流动而形成逻辑上的拓扑结构。Storm的拓扑类似于MapReduce的作业(Job)。

6、Nimbus

主控节点,整个集群的控管核心,负责在集群对节点分配任务,并监视主机故障,topology的提交等工作,类似于Hadoop的JobTracker。

7、Supervisor

工作节点,负责接收Nimbus分配的任务,管理所有Worker,一个Supervisor节点中包含多个Worker进程。类似TaskTracker

8、流分组(Stream grouping)

流分组,是拓扑定义中的一部分,为每个Bolt指定应该接收哪个流作为输入。

9、工作进程(Worker)

Worker是Spout/Bolt中运行具体处理逻辑的进程。一个worker就是一个进程,进程里面包含一个或多个线程

三、配置storm集群 

1、修改storm/conf

# 设置Zookeeper的主机名称
storm.zookeeper.servers:
     - "hdp-1"
     - "hdp-2"
     - "hdp-3"

# 设置主节点的主机名称
nimbus.seeds: ["hdp-1"]

# 设置Storm的数据存储路径
storm.local.dir: "/root/apps/storm/data"

# 设置Worker的端口号
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

2、启动nimbus、supervisor

#已配置环境变量
[root@hdp-1 conf]# storm nimbus &

[root@hdp-1 conf]# storm supervisor &

3、启动ui界面  http://hdp-1:8080/index.html  查看状态

[root@hdp-1 conf]# storm ui &

                              

4、查看日志

(1)在nimbus的服务器上  storm/logs/nimbus.log,ui.log,supervisor.log 文件查看

         在supervisor的服务器上 storm/logs/worker-6702.log

(2)启动ui的supervisor日志

[root@hdp-1 conf]# storm logviewer &

       ui界面点击Supervisor Summary的hdp-1

       

发布了77 篇原创文章 · 获赞 19 · 访问量 4085

猜你喜欢

转载自blog.csdn.net/qq_41861558/article/details/102714822