实现步骤:
- 安装和配置jdk
- 安装和配置zookeeper
- 上传和解压storm
- 配置storm安装目录conf目录下的storm.yaml文件
storm.yaml配置示例:
注意配置项开头需要有空格,:后面需要跟空格,否则启动会报错
5.在storm安装目录下创建tmp目录
Storm配置说明
以下为必须修改的项:
1)storm.zookeeper.services:配置zookeeper集群的主机名称。
2)nimbus.host:指定了集群中nimbus的节点
3)supervisor.slots.ports:配置控制每个supervisor节点运行多少个worker进程。这个配置定义为
worker监听的端口的列表,监听端口的个数控制了supervisor节点上有多少个worker的插槽。
默认的storm使用6700~6703端口,每个supervisor节点上有4个worker插槽。
4)storm.local.dir:storm工作时产生的工作文件存放的位置,注意,要避免配置到/tmp下。
其他可选的常用修改项:
1)ui.port(default:8080):这项配置指定了Storm UI的Web服务器监听的端口。
2)topology.message.timeout.secs(default:30):这个配置项设定了一个tuple树需要
应答最大时间秒数限制,超过这个时间的认为已经执行失败(超时)。这个值设置得太小可能
会导致tuple反复重新发送。当这个选项生效时,spout必须设定来发送锚定的tuple。
3)topology.max.spout.pending(default:null):在默认值null的时候,每当spout产生
了新的tuple,Storm会立即将tuple向后端数据流发送。
注:由于下游bolt执行可能有延迟,默认的数据发送行为可能导致topology过载,从而导致
消息处理超时。将本选项设置为非null大于0的数字时,Storm会暂停发送tuple到数据流直到
发送出去的tuple小于这个数字,起到了对spout限速的作用。这项配置和
topology.message.timeout.secs一起,是调节topology性能的最重要的两个参数。
Storm集群的启动
实现步骤:
进入第一台虚拟机的storm安装目录下的bin目录
- 启动nimbus 后台进程
执行:./storm nimbus >/dev/null 2>&1 &
- 启动supervisor 后台进程
执行:./storm supervisor >/dev/null 2>&1 &
- 启动 ui 后台进程
执行:./storm ui >/dev/null 2>&1 &
最后通过jps查看所有进程:
- 进入02,03虚拟机,启动supervisor进程
- 通过浏览器,访问01虚拟机的8080端口,进入ui管理页面
注意事项:ui进程必须和nimbus进程在同一台物理机上
Storm命令
–启动命令
**在启动storm之前确保storm使用的zookeeper已经启动且可以使用
1)storm nimbus
启动nimbus守护进程
2)storm supervisor
启动supervisor守护进程
3)storm ui
启动stormui的守护进程,从而可以通过webUI界面来监控storm运行过程
4)storm drpc
启动一个DRPC服务守护进程
–管理命令
1)storm jar topology_jar topology_class[arguments…]<