JStorm部署

发布时间:2025-12-09 21:41:20 浏览次数:4

机器规划

172.16.10.210:jstorm nimbus master,jstorm supervisor
172.16.10.211:jstorm supervisor
172.16.10.212:jstorm supervisor
172.16.10.220:2181 : zookeeper

集群部署

准备安装包

wget https://github.com/alibaba/jstorm/releases/download/2.2.1/jstorm-2.2.1.zipunzip jstorm-2.2.1.zipmv jstorm-2.2.1 /opt/jstorm

环境变量

在~/.bash_profile 文件中或/etc/profile 文件中添加如下配置

vi ~/.bash_profilevi /etc/profile···export JSTORM_HOME=/opt/jstormexport PATH=$PATH:$JSTORM_HOME/bin···

配置

编辑$JSTORM_HOME/conf/storm.yaml 配置文件

vim $JSTORM_HOME/conf/storm.yaml

配置storm.zookeeper.servers为zookeeper地址

# 端口默认2181storm.zookeeper.servers:- "172.16.10.220"

配置storm.zookeeper.root为jstorm在zookeeper的节点名称

storm.zookeeper.root: "/jstorm"

去掉nimbus.host的注释,配置nimbus节点

nimbus.host: "172.16.10.210"

配置storm.local.dir,表示jstorm的临时数据存放目录

storm.local.dir: "%JSTORM_HOME%/data"

去掉supervisor.slots.ports前面的注释,设置supervisor节点执行worker使用的端口列表

supervisor.slots.ports:- 6800- 6801- 6802- 6803

完整配置

########### These MUST be filled in for a storm configurationstorm.zookeeper.servers:- "172.16.10.220"storm.zookeeper.root: "/jstorm"# cluster.name: "default"#nimbus.host/nimbus.host.start.supervisor is being used by $JSTORM_HOME/bin/start.sh#it only support IP, please don't set hostname# For examplenimbus.host: "172.16.10.210"#nimbus.host: "localhost"#nimbus.host.start.supervisor: false# %JSTORM_HOME% is the jstorm home directorystorm.local.dir: "%JSTORM_HOME%/data"# please set absolute path, default path is JSTORM_HOME/logs# jstorm.log.dir: "absolute path"# java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"# if supervisor.slots.ports is null,# the port list will be generated by cpu cores and system memory size# for example,# there are cpu_num = system_physical_cpu_num/supervisor.slots.port.cpu.weight# there are mem_num = system_physical_memory_size/(worker.memory.size * supervisor.slots.port.mem.weight)# The final port number is min(cpu_num, mem_num)# supervisor.slots.ports.base: 6800# supervisor.slots.port.cpu.weight: 1.2# supervisor.slots.port.mem.weight: 0.7# supervisor.slots.ports: nullsupervisor.slots.ports:- 6800- 6801- 6802- 6803# Default disable user-define classloader# If there are jar conflict between jstorm and application,# please enable it# topology.enable.classloader: false# ...

部署nimbus

运行

切换路径

cd $JSTORM_HOME/bin

直接运行nimbus

jstorm nimbus

后台运行

nohup jstorm nimbus >> nimbus.txt 2>&1 &

HA

jstorm支持多个nimbus做HA,在另一台机器上执行同样的命令即可,根据zookeeper的原理,后执行的就自动standby了,充当slave,部署了jstorm-ui后,可以在jstorm-ui上可以看到。

部署supervisor

切换路径

cd $JSTORM_HOME/bin

直接运行nimbus

jstorm supervisor

后台运行

nohup jstorm supervisor >> supervisor.txt 2>&1 &

部署storm-ui

下载的jstorm包解压后在根目录下有jstorm-ui-2.2.1.war,这是一个标准的war包,放在tomcat中执行即可

配置

因为storm-ui也需要storm.yaml的配置,默认使用~/.jstorm/storm.yaml

mkdir ~/.jstormcp -f $JSTORM_HOME/conf/storm.yaml ~/.jstorm

启动tomcat,就可以看到熟悉的jstorm-ui了,在_Nimbus Summary_可以很清楚的看到主备信息
如果有多个jstorm集群需要管理的话,自JStorm 0.9.6.1 后,无需一个jstorm集群对应一个jstorm-ui了,使用一个web UI 可以管理多个集群, 修改storm.yaml里最末尾的配置即可

开机启动

nimbus

编写脚本 nimbus-start.sh

#!/bin/bash#chkconfig: 112 63 37nohup $JSTORM_HOME/bin/jstorm nimbus >> $JSTORM_HOME/bin/nimbus.txt 2>&1 &

将脚本移动到/etc/rc.d/init.d目录下

mv nimbus-start.sh /etc/rc.d/init.d

赋予脚本可执行权限

chmod +x /etc/rc.d/init.d/nimbus-start.sh

添加脚本到开机自动启动项目中

cd /etc/rc.d/init.dchkconfig --add nimbus-start.shchkconfig nimbus-start.sh on

supervisor

编写脚本 supervisor-start.sh

#!/bin/bash#chkconfig: 112 63 37nohup $JSTORM_HOME/bin/jstorm supervisor >> $JSTORM_HOME/bin/supervisor 2>&1 &

将脚本移动到/etc/rc.d/init.d目录下

mv supervisor-start.sh /etc/rc.d/init.d

赋予脚本可执行权限

chmod +x /etc/rc.d/init.d/supervisor-start.sh

添加脚本到开机自动启动项目中

cd /etc/rc.d/init.dchkconfig --add supervisor-start.shchkconfig supervisor-start.sh on

jstorm-ui

编写脚本 jstorm-ui-start.sh

#!/bin/bash#chkconfig: 112 63 37${TOMCAT_HOME}/bin/startup.sh

将脚本移动到/etc/rc.d/init.d目录下

mv jstorm-ui-start.sh /etc/rc.d/init.d

赋予脚本可执行权限

chmod +x /etc/rc.d/init.d/jstorm-ui-start.sh

添加脚本到开机自动启动项目中

cd /etc/rc.d/init.dchkconfig --add jstorm-ui-start.shchkconfig jstorm-ui-start.sh on

提交topology

提交topology的命令格式

jstorm jar topology-jar-path class …
例如:

jstorm jar springboot-jstorm-cal.jar com.***.***.CalBootstrap

杀死topology

jstorm kill topologyname

例如:

jstorm kill topologyname
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477