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