Storm用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失。提供简单容易理解的接口,便于开发。本文讲述在三台主机上安装Storm集群的主要步骤
主要内容:
- 1.Storm架构图
- 2.Storm编程模型
- 3.安装部署
- 4.测试
- 5.一键脚本
1.Storm架构图

- Nimbus:负责资源分配和任务调度。
- Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。
- Worker:运行具体处理组件逻辑的进程。
- Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor。
2.Storm编程模型

- Topology:Storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。
- Spout:在一个topology中产生源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Spout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可。
- Bolt:在一个topology中接受数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt是一个被动的角色,其接口中有个execute(Tuple input)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作。
3.安装部署
3.1.集群规划
用户 | 主机名 | ip | 进程 |
---|---|---|---|
hadoop | hadoop1 | 192.168.2.111 | Zookeeper、nimbus、core |
hadoop | hadoop2 | 192.168.2.112 | Zookeeper、Supervisor |
hadoop | hadoop3 | 192.168.2.113 | Zookeeper、Supervisor |
3.2.下载
3.3.解压
tar -zxvf apache-storm-1.2.1.tar.gz -C /opt/soft
3.4.修改配置文件
#指定storm使用的zk集群
storm.zookeeper.servers:
- "hadoop1"
- "hadoop2"
- "hadoop3"
#指定storm集群中的nimbus节点所在的服务器
nimbus.seeds: ["hadoop1"]
#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
分发到其它主机
scp -r /opt/soft/apache-storm-1.2.1 hadoop@hadoop2:/opt/soft
scp -r /opt/soft/apache-storm-1.2.1 hadoop@hadoop3:/opt/soft
设置环境变量
export STORM_HOME=/opt/soft/apache-storm-1.2.1/
export PATH=$PATH:$STORM_HOME/bin
3.5.启动
hadoop1 启动nimbus
nohup ./bin/storm nimbus &
hadoop1 启动ui
nohup ./bin/storm ui &
hadoop2、hadoop3 启动 Supervisor
nohup ./bin/storm supervisor &
4.测试
4.1.查看启动状态
通过运行jps命令查看各主机的Strom进程

4.2.通过UI查看
前面我们启动了UI进程,直接访问hadoop1:8080即可查看

网友评论