Bootstrap

Storm集群安装部署

Storm 集群安装部署
1 部署环境准备

节点名称 Ip 节点角色 备注
storm01 192.168.5.240 nimbus/zookeeper 主节点/ZK 节点
storm02 192.168.5.241 supervisor/zookeeper 工作节点/ZK 节点
storm03 192.168.5.242 supervisor/zookeeper 工作节点/ZK 节点

2 部署 Storm 集群
下面是搭建一个 Storm 集群需要依次完成的安装步骤:
1、搭建 Zookeeper 集群
2、在主控节点和工作节点服务器上安装 Storm 依赖软件
3、在主控节点和工作节点服务器上安装 Storm
4、修改 storm.yaml 配置文件
5、启动 Storm 各后台进程

2.1 搭建 Zookeeper 集群
配置 hosts

vim /etc/hosts 末尾添加 
192.168.5.240   storm01 
192.168.5.241   storm02 
192.168.5.242   storm03 

在三个节点上解压 zookeeper-3.4.6.tar.gz

创建压缩包目录

mkdir /home/tools

将压缩包上传到该目录下

tar -zxvf zookeeper-3.4.6.tar.gz

创建我们的项目目录,方便统一管理

mkdir /home/softwares

将 zk 解压目录移入项目子目录,并且进入该目录

cd home/softwares/zookeeper-3.4.6/

进入conf目录下将zoo_sample.cfg重命名为zoo.cfg

cd conf
cp ./zoo_sample.cfg ./zoo.cfg

配置 zk 打开zoo.cfg

Zk 的安装目录下

tickTime=2000 
initLimit=10
syncLimit=5
dataDir=/home/softwares/zookeeper-3.4.13/zkdata 
dataLogDir=/home/softwares/zookeeper-3.4.13/logs 
clientPort=2181 
server.1=storm01:2888:3888 
server.2=storm02:2888:3888 
server.3=storm03:2888:3888 

说明:
dataDir 指定 Zookeeper 的数据文件目录 server.id=host:port:port,id 是为每个 Zookeeper 节点的编号,保存在 dataDir 目录下的 myid 文件中,cddserver1、cddserver2、cddserver3 表示各个 Zookeeper 节点的 hostname,第一个 port 是用于连接 leader 的端口,第二个 port 是用于 leader 选举的端口。

建立节点标识文件
在zookeeper-3.4.13目录下创建zkdata目录
Storm01:echo “1” > /home/softwares/zookeeper-3.4.13/zkdata/myid
storm02:echo “2” > /home/softwares/zookeeper-3.4.13/zkdata/myid
storm03:echo “3” > /home/softwares/zookeeper-3.4.13/zkdata/myid
conf/zoo.cfg 文件中的 dataDir 参数指定目录下创建 myid 文件,里面内容为一个数字,用来 标识当前主机,conf/zoo.cfg 文件中配置的 server.X 中 X 是什么数字,则 myid 文件中就输入 这个数字

配置环境变量

vim /etc/profile 末尾添加

export ZOOKEEPER_HOME=home/softwares/zookeeper-3.4.13
export PATH=$ZOOKEEPER_HOME/bin:$PATH 

启动 zk
zkServer.sh start
查看状态 zkServer.sh status

2.2 依赖软件安装

2.2.1 安装 JDK8

配置环境变量

检查 java 是否安装成功

2.2.2 安装 Python 2.7.2

解压 Python-2.7.2.tgz tar

-zxvf Python-2.7.2.tgz

 进入解压目录,进行编译安装

cd Python-2.7.2 ./configure
make  
make install 

 检查 python 的版本 python --version

2.3 安装 Storm 集群

在tools目录中解压 apache-storm-0.9.2-incubating.zip 到softwares目录

tar -zxvf unzip apache-storm-0.9.2-incubating.zip -C ./softwares

建立存储状态的文件夹 status

mkdir /home/softwares/apache-storm-0.9.2-incubating/status

配置 storm

vim conf/storm.yaml
修改 storm.zookeeper.servers:

- "storm01"      
- "storm02"      
- "storm03"  
nimbus.host: "storm01"  
storm.local.dir: "/home/softwares/apache-storm-0.9.2-incubating/status"  
supervisor.slots.ports:      
- 6700
- 6701      
- 6702      
- 6703 

storm.zookeeper.servers: Storm 集群使用的 Zookeeper 集群地址。 storm.local.dir: Nimbus 和 Supervisor 进程用于存储少量状态,如 jars、confs 等的本地磁盘目 录,需要提前创建该目录并给以足够的访问权限。然后在 storm.yaml 中配置该目录。 nimbus.host: Storm 集群 Nimbus 机器地址,各个 Supervisor 工作节点需要知道哪个机器是 Nimbus,以便下载 Topologies 的 jars、confs 等文件。 supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker 数量。每个 worker 占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是 可被 worker 使用的。默认情况下,每个节点上可运行 4 个 workers,分别在 6700、6701、 6702 和 6703 端口。

进入子目录,并且配置环境变量

cd /home/softwares/apache-storm-0.9.2-incubating/
vim /etc/profile 末尾添加

export STORM_HOME=/home/softwares/apache-storm-0.9.2-incubating/ 
export PATH=$STORM_HOME/bin:$PATH 

启动 storm
1、在 Storm 主控节点上运行:storm nimbus >/dev/null 2>&1 &
2、在 Storm 主控节点上运行:storm ui >/dev/null 2>&1 &
3、在 Storm 工作节点上运行:storm supervisor >/dev/null 2>&1 &
第三步执行后,可以通过 http://{nimbus host}:8080观察集群的 worker 资源使用情况、 Topologies 的运行状态等信息。
列出 Storm Topology:storm list
停止 Storm Topology:storm kill {topologyname}
提交 Storm Topology:storm jar mycode.jar storm.MyTopology arg1 arg2 … mycode.jar:包含 Topology 实现代码的 jar 包
storm.MyTopology:main 方法的入口,即 main 方法所在类名
arg1、arg2 等为 main 方法参数

 查看进程是否启动
jps

 使用监控页面查看状态
http://192.168.5.240:8080

;