服务器准备
Storm不依赖于HDFS,全分布式使用虚拟机模板克隆出三台新的虚拟机(node05/node06/node07)进行搭建试验。Linux系统在VM下的安装克隆可参照之前的Linux学习系列文章。
Storm需要依赖Java和python环境,我的克隆机里python已有,但还没有安装jdk,所以需要先安装一下(安装JDK教程在【Hadoop学习笔记一:伪分布式搭建(Hadoop1.x)】里有)。
Storm全分布式服务器规划.png
安装Zookeeper
node05/node06/node07安装Zookeeper,先在node05上操作
1.解压
tar xf zookeeper-3.4.6.tar.gz -C /opt/sxt/
2.配置修改
cd zookeeper-3.4.6/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
#修改(ZK的文档扔到这个目录下)
dataDir=/var/sxt/zk
#文档后追加配置
#zk集群前提条件:1.一开始告诉集群数量 2.把每台服务器编制serverid
server.1=node05:2888:3888
server.2=node06:2888:3888
server.3=node07:2888:3888
#2888 是主从节点之间的通信端口
#3888 是当发生主挂断之后,选举机制采用的通信端口
3.Zookeeper分发到node06/node07
scp -r zookeeper-3.4.6/ node06:`pwd`
scp -r zookeeper-3.4.6/ node07:`pwd`
4.每个节点创建数据存放路径,并在此路径下新增myid文件
#每个节点新增路径
mkdir -p /var/sxt/zk
#每个节点添加id文件
echo 1 > /var/sxt/zk/myid
echo 2 > /var/sxt/zk/myid
echo 3 > /var/sxt/zk/myid
5.配置环境变量
vi + /etc/profile
export ZOOKEEPER_HOME=/opt/sxt/zookeeper-3.4.6
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
#配置完分发给node03/node04 后每个节点 source一下
6.Zookeeper启动
#三台同时执行
zkServer.sh start
#查看是否启动 (是否有QuorumPeerMain进程)
jps
#查看集群状态
zkServer.sh status
注意:zookeeper默认id最大的作为主,其他为从。但一个一个启动(三台服务器至少启动两台,集群才启动)先启动的两个ID大的是主,后启动的第三个还是从。若是五台集群,先启动的前三个个ID大的是主。
Strom解压配置
1.首先在node05上执行解压安装
tar xf apache-storm-0.10.0.tar.gz -C /opt/sxt/
2.配置storm.yaml
[root@node05 conf] vi /opt/sxt/apache-storm-0.10.0/conf/storm.yaml
#配置 信息在哪个zookeeper之上、主节点是哪个、提交任务的磁盘目录
storm.zookeeper.servers:
- "node05"
- "node06"
- "node07"
nimbus.host: "node05"
storm.local.dir: "/var/sxt/storm"
#四个worker进程的通讯端口,不配置的话默认也是这四个(单一的supervisor上会跑四个worker)
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
3.在storm目录中创建logs目录
[root@node05 storm] mkdir logs
4.分发给node06/node07,并配置其环境变量
[root@node05 sxt] scp -r apache-storm-0.10.0/ node06:`pwd`
[root@node05 sxt] scp -r apache-storm-0.10.0/ node07:`pwd`
5.启动ZooKeeper集群
[root@node07 ~] zkServer.sh start
[root@node07 ~] zkServer.sh status
6.node05上启动Nimbus
[root@node05 storm] storm nimbus >> ./logs/nimbus.out 2>&1 &
[root@node05 storm] storm ui>> ./logs/ui.out 2>&1 &
7.node06/node07上启动Supervisor
#每启动一个supervisor就有了4个slots(当然node1也可以启动supervisor)
[root@node05 storm] storm supervisor>> ./logs/supervisor.out 2>&1 &
浏览器查看 http://node05:8080/
8.提交任务到Storm集群当中运行
$ ./bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.4.jar storm.starter.WordCountTopology test
网友评论