1、Storm架构详解
2、Storm单机部署之前置条件及解压
3、Storm单机部署之启动Storm各个节点及StormUI界面部署
3.1、修改apache-storm-1.1.1/conf/storm-env.sh文件增加JDK路径参数
export JAVA_HOME=/home/storm/app/jdk1.8.0_91
注意:这里启动的zookeeper是storm内置的,启动按照顺序启动
ui界面地址:ip:8080
4、改写Storm作业并提交到Storm单节点集群运行
4.1、改写我们的LocalSumStormTopology本地项目改成服务器运行
4.2、改好后去项目目录打包
mvn clean package -DiskTest
4.3、然后把/Users/zhaoxinbo/IdeaProjects/strom/target下的包传到服务器
scp strom-1.0.jar [email protected]:/home/storm/lib/
4.4、执行项目
storm jar /home/storm/lib/strom-1.0.jar com.imooc.bigdata.ColonySumStormTopology
5、Storm常用命令
5.1、查看正在执行的项目命令,其实ui就能看见
storm list
5.2、停止项目 ui也能停止
命令停止 storm kill “ColonySumStormTopology” 后边还可以指定杀死的等待时间
6、Storm集群部署规划
7、Storm集群部署之软件包分发和jdk部署
7.1 分别在storm000\sotrm001\storm002三台机器上安装JDK
storm000:
安装jdk到app目录下
tar -zxvf jdk-8u91-linux-x64.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#JDK
export JAVA_HOME=/home/storm/app/jdk1.8.0_91
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
生效环境变量
source .bash_profile
storm001:
把安装包从storm000传到storm001
scp jdk-8u91-linux-x64.tar.gz [email protected]:~/software/ 这里我配置了ssh无密码登陆所以不用ip
安装jdk到app目录下
tar -zxvf jdk-8u91-linux-x64.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#JDK
export JAVA_HOME=/home/storm/app/jdk1.8.0_91
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
生效环境变量
source .bash_profile
storm002:
把安装包从storm000传到storm002
scp jdk-8u91-linux-x64.tar.gz [email protected]:~/software/ 这里我配置了ssh无密码登陆所以不用ip
安装jdk到app目录下
tar -zxvf jdk-8u91-linux-x64.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#JDK
export JAVA_HOME=/home/storm/app/jdk1.8.0_91
export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
生效环境变量
source .bash_profile
8、Storm集群部署之Zookeeper分布式环境部署
8.1、storm000:
安装jdk到app目录下
tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#zookeeper
export ZOO_KEEPER=/home/storm/app/zookeeper-3.4.5-cdh5.7.0
export PATH=
Z
O
O
K
E
E
P
E
R
/
b
i
n
:
ZOO_KEEPER/bin:
ZOOKEEPER/bin:PATH
生效环境变量
source .bash_profile
在/home/storm/app/tmp/目录下新建 zookeeper
mkdir zookeeper
配置zookeeper配置文件:zoo.cfg
tickTime=2000
dataDir=/home/storm/app/tmp/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=storm000:2888:3888
server.2=storm001:2888:3888
server.3=storm002:2888:3888
在/home/storm/app/tmp/zookeeper下新建名为myid的文件
touch myid 编辑 vim myid 就只写入个 1
storm001:
把安装包从storm000传到storm001
scp zookeeper-3.4.5-cdh5.7.0.tar.gz [email protected]:~/software/ 这里我配置了ssh无密码登陆所以不用ip
安装jdk到app目录下
tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#zookeeper
export ZOO_KEEPER=/home/storm/app/zookeeper-3.4.5-cdh5.7.0
export PATH=
Z
O
O
K
E
E
P
E
R
/
b
i
n
:
ZOO_KEEPER/bin:
ZOOKEEPER/bin:PATH
生效环境变量
source .bash_profile
在/home/storm/app/tmp/目录下新建 zookeeper
mkdir zookeeper
配置zookeeper配置文件:zoo.cfg zoo.cfg 从storm000直接传过来就行
scp zoo.cfg [email protected]:/home/storm/app/zookeeper-3.4.5-cdh5.7.0/conf/
在/home/storm/app/tmp/zookeeper下新建名为myid的文件
touch myid 编辑 vim myid 就只写入个 2
storm002:
把安装包从storm000传到storm002
scp zookeeper-3.4.5-cdh5.7.0.tar.gz [email protected]:~/software/ 这里我配置了ssh无密码登陆所以不用ip
安装jdk到app目录下
tar -zxvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#zookeeper
export ZOO_KEEPER=/home/storm/app/zookeeper-3.4.5-cdh5.7.0
export PATH=
Z
O
O
K
E
E
P
E
R
/
b
i
n
:
ZOO_KEEPER/bin:
ZOOKEEPER/bin:PATH
生效环境变量
source .bash_profile
在/home/storm/app/tmp/目录下新建 zookeeper
mkdir zookeeper
配置zookeeper配置文件:zoo.cfg 从storm000直接传过来就行
scp zoo.cfg [email protected]:/home/storm/app/zookeeper-3.4.5-cdh5.7.0/conf/
在/home/storm/app/tmp/zookeeper下新建名为myid的文件
touch myid 编辑 vim myid 就只写入个 3
启动:
strom000的zookeeper
strom001的zookeeper
strom002的zookeeper
查看状态
storm000状态 辅节点
storm001状态 主节点
storm002状态 辅节点
9、Storm集群部署之Storm集群部署及启动
storm000:
安装jdk到app目录下
tar -zxvf apache-storm-1.1.1.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#storm
export STORM_HOME=/home/storm/app/apache-storm-1.1.1
export PATH=
S
T
O
R
M
H
O
M
E
/
b
i
n
:
STORM_HOME/bin:
STORMHOME/bin:PATH
生效环境变量
source .bash_profile
配置apache-storm-1.1.1/conf/storm-env.sh
export JAVA_HOME=/home/storm/app/jdk1.8.0_91
配置apache-storm-1.1.1/conf/storm.yaml
storm.zookeeper.servers:
- “storm000”
- “storm001”
- “storm002”
storm.local.dir: “/home/storm/app/tmp/storm”
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
storm001:
把安装包从storm000传到storm001
scp apache-storm-1.1.1.tar.gz [email protected]:~/software/ 这里我配置了ssh无密码登陆所以不用ip
安装jdk到app目录下
tar -zxvf apache-storm-1.1.1.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#storm
export STORM_HOME=/home/storm/app/apache-storm-1.1.1
export PATH=
S
T
O
R
M
H
O
M
E
/
b
i
n
:
STORM_HOME/bin:
STORMHOME/bin:PATH
生效环境变量
source .bash_profile
配置apache-storm-1.1.1/conf/storm-env.sh 直接从storm000复制过来
scp storm-env.sh [email protected]:/home/storm/app/apache-storm-1.1.1/conf/
配置apache-storm-1.1.1/conf/storm.yaml 直接从storm000复制过来
scp storm.yaml [email protected]:/home/storm/app/apache-storm-1.1.1/conf/
storm002:
把安装包从storm000传到storm001
scp zookeeper-3.4.5-cdh5.7.0.tar.gz [email protected]:~/software/ 这里我配置了ssh无密码登陆所以不用ip
安装jdk到app目录下
tar -zxvf apache-storm-1.1.1.tar.gz -C ~/app/
添加环境变量 vim .bash_profile
#storm
export STORM_HOME=/home/storm/app/apache-storm-1.1.1
export PATH=
S
T
O
R
M
H
O
M
E
/
b
i
n
:
STORM_HOME/bin:
STORMHOME/bin:PATH
生效环境变量
source .bash_profile
配置apache-storm-1.1.1/conf/storm-env.sh 直接从storm000复制过来
scp storm-env.sh [email protected]:/home/storm/app/apache-storm-1.1.1/conf/
配置apache-storm-1.1.1/conf/storm.yaml 直接从storm000复制过来
scp storm.yaml [email protected]:/home/storm/app/apache-storm-1.1.1/conf/
启动:
storm000
这里要说下因为我们不用内置的zookeeper了所以就不用启动了
1、nohup sh storm nimbus &
2、nohup sh storm ui &
3、nohup sh storm supervisor &
4、打开 ip:8080查看 storm000已经起来了
5、在所有,有supervisor节点上启动logviewer ,这次我们把其中一个supervisor放在了主节点上了所以就也启动了
nohup sh storm logviewer &
storm001 辅节点不用启动 nimbus 和
这里要说下因为我们不用内置的zookeeper了所以就不用启动了
1、nohup sh storm supervisor &
2、打开 ip:8080查看 storm001已经起来了
3、在所有,有supervisor节点上启动logviewer
nohup sh storm logviewer &
storm002 辅节点不用启动 nimbus 和
这里要说下因为我们不用内置的zookeeper了所以就不用启动了
1、nohup sh storm supervisor &
2、打开 ip:8080查看 storm002已经起来了
3、在所有,有supervisor节点上启动logviewer
nohup sh storm logviewer &
检查:启动完成后一定要检查所有节点进程是否都启动成功和启动的对
storm000:
storm001:
storm002:
10、提交Storm作业到集群中运行&目录介绍
把作业提交到集群上测试运行,在storm000上提交,也可以在storm001 storm002 都可以跑的啊
这里我们jar项目包在storm000上我们就在storm000上跑了
storm jar /home/storm/lib/strom-1.0.jar com.imooc.bigdata.ColonySumStormTopology
去ui看下,跑起来了 works是跑在storm001的节点上