天天看点

本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

单机伪集群模式 Ubuntu+Strom+Zookeeper

  • 部署环境
  • 事前准备
    • 共享目录
  • 安装JDK
  • 安装Zookeeper
  • Storm安装
  • 参考

部署环境

软件 版本
Ubuntu 18.04.2
JDK 8u221
Strom 1.2.2
Zookeeper 3.4.14

事前准备

共享目录

本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

1 设置->共享文件夹

2. 键入如下命令,参数share为上一步中共享文件夹名称,参数 /mnt/share/为linux上文件夹路径

sudo mount -t vboxsf share /mnt/share
           

安装JDK

1.解压

sudo tar -zxvf jdk-8u211-linux-x64.gz -C /opt
           

2.改变文件所有者

sudo chown -R 用户名:用户组名 /opt/jdk1.8.0.211
           

3.设置环境变量

sudo gedit ~/.bashrc
           

4.在文末添加环境变量,保存退出

#jdk
export JAVA_HOME=/opt/jdk1.8.0_211
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
           

5.生效环境变量

source ~/.bashrc
           

6.验证

java -version
           
本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

安装Zookeeper

1.解压

sudo tar -zxvf zookeeper-3.4.14.tar.gz -C /opt
           

2.设置环境变量

sudo gedit ~/.bashrc
           

3.在文末添加环境变量,保存退出

#zookeeper
export ZK_HOME=/opt/zookeeper-3.4.14
export PATH=$PATH:$ZK_HOME/bin
           

4.生效环境变量

source ~/.bashrc
           

5.创建数据、日志文件夹

cd /opt/zookeeper-3.4.14/
mkdir data
mkdir logs
           

6.创建集群文件,将zookeeper文件夹拷贝3份

cd /opt
sudo mkdir zookeeper
sudo cp -r zookeeper-3.4.14 zookeeper/1
sudo cp -r zookeeper-3.4.14 zookeeper/2
sudo cp -r zookeeper-3.4.14 zookeeper/3
           

7.改变文件所有者

sudo chown -R 用户名:用户组名 /opt/zookeeper
           

8.修改3个节点的配置文件

cd /opt/zookeeper/1/conf #进入配置文件目录
cp zoo_sample.cfg zoo.cfg #拷贝本地配置文件
sudo gedit zoo.cfg #编辑本地配置文件
           

9.分别添加Zookeeper配置

dataDir和dataLogDir分别为各节点对应路径

clientPort三个不同即可,如:2181、2182、2183

dataDir=/opt/zookeeper/1/data
dataLogDir=/opt/zookeeper/1/logs
clientPort=2181

tickTime=2000
initLimit=5
syncLimit=2

server.1=localhost:4181:5181
server.2=localhost:4182:5182
server.3=localhost:4183:5183
           

10.创建ServerID

除了修改zoo.cfg配置文件外,zookeeper集群模式下还要配置一个myid文件,这个文件需要放在dataDir目录下。

这个文件里面有一个数据就是A的值(该A就是zoo.cfg文件中server.A=B:C:D中的A),在zoo.cfg文件中配置的dataDir路径中创建myid文件。

即对应上一步设置中server.1

echo "1" > /opt/zookeeper/1/data/myid
echo "2" > /opt/zookeeper/2/data/myid
echo "3" > /opt/zookeeper/3/data/myid
           

11.启动三个节点

cd /opt/zookeeper/1/bin
zkServer.sh start ../conf/zoo.cfg

cd /opt/zookeeper/2/bin
zkServer.sh start ../conf/zoo.cfg

cd /opt/zookeeper/3/bin/
zkServer.sh start ../conf/zoo.cfg
           

12.验证

(1)全部启动后,进程查看,有3个QuorumPeerMain。

集群3个节点有一个未启动,执行 status指令会报错。

cd /opt/zookeeper/1/bin
zkServer.sh status
jps
           
本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

(2)客户端

cd /opt/zookeeper/1/bin
#客户端
./zkCli.sh -server localhost:2181
           
本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

Storm安装

1.解压

sudo tar -zxvf apache-storm-1.2.2.tar.gz -C /opt
           

2.设置环境变量

sudo gedit ~/.bashrc
           

3.在文末添加环境变量,保存退出

#storm
export STORM_HOME=/opt/apache-storm-1.2.2
export PATH=$PATH:$STORM_HOME/bin
           

4.生效环境变量

source ~/.bashrc
           

5.创建集群文件,将storm文件夹拷贝3份

cd /opt
sudo mkdir zookeeper
sudo cp -r apache-storm-1.2.2 storm/1
sudo cp -r apache-storm-1.2.2 storm/2
sudo cp -r apache-storm-1.2.2 storm/3
           

6.改变文件所有者

sudo chown -R 用户名:用户组名 /opt/storm
           

7.修改3个节点的配置文件

8.分别添加storm配置

主节点: server1

# 指定zookeeper地址,集群的话配置多个server
storm.zookeeper.servers:
     - "localhost"
    # - "server2"
    
storm.zookeeper.port: 2181
#ui.port: 8085

# storm主节点,多个主节点的话配置多个host
nimbus.seeds: ["localhost"]
#nimbus.host: "localhost"

# 提交的topology都会上传到该目录,需要手动创建tmp目录
storm.local.dir: "/opt/storm/1/tmp"

# 开启的槽数量,supervisor上能够运行workers的端口列表.每个worker占用一个端口,且每个端口只运行一个worker.通过这项配置可以调整每台机器上运行的worker数.(调整slot数/每机)
supervisor.slots.ports:
 - 6700
 - 6701
 - 6702
 - 6703
# 如上注意,-和:之后都有空格;如果要搭建Storm的HA,只需要在nimbus.seeds中设置多个nimbus即可。
#Storm的event logger的功能默认是禁用的,需要在配置文件中设置:topology.eventlogger.executors: 1
           

从节点:server2

# 指定zookeeper地址,集群的话配置多个server
storm.zookeeper.servers:
     - "localhost"
    # - "server2"
    
storm.zookeeper.port: 2182
#ui.port: 8085

# storm主节点,多个主节点的话配置多个host
nimbus.seeds: ["localhost"]
#nimbus.host: "localhost"

# 提交的topology都会上传到该目录,需要手动创建tmp目录
storm.local.dir: "/opt/storm/2/tmp"

# 开启的槽数量,supervisor上能够运行workers的端口列表.每个worker占用一个端口,且每个端口只运行一个worker.通过这项配置可以调整每台机器上运行的worker数.(调整slot数/每机)
supervisor.slots.ports:
 - 6800
 - 6801
 - 6802
 - 6803
# 如上注意,-和:之后都有空格;如果要搭建Storm的HA,只需要在nimbus.seeds中设置多个nimbus即可。
#Storm的event logger的功能默认是禁用的,需要在配置文件中设置:topology.eventlogger.executors: 1
           

从节点:server3

# 指定zookeeper地址,集群的话配置多个server
storm.zookeeper.servers:
     - "localhost"
    # - "server2"
    
storm.zookeeper.port: 2183
#ui.port: 8085

# storm主节点,多个主节点的话配置多个host
nimbus.seeds: ["localhost"]
#nimbus.host: "localhost"

# 提交的topology都会上传到该目录,需要手动创建tmp目录
storm.local.dir: "/opt/storm/3/tmp"

# 开启的槽数量,supervisor上能够运行workers的端口列表.每个worker占用一个端口,且每个端口只运行一个worker.通过这项配置可以调整每台机器上运行的worker数.(调整slot数/每机)
supervisor.slots.ports:
 - 6900
 - 6901
 - 6902
 - 6903
# 如上注意,-和:之后都有空格;如果要搭建Storm的HA,只需要在nimbus.seeds中设置多个nimbus即可。
#Storm的event logger的功能默认是禁用的,需要在配置文件中设置:topology.eventlogger.executors: 1
           

9.启动Storm

#启动nimbus
/opt/storm/1/bin/storm nimbus & 
#启动ui,在nimbus.host所属的机器上启动ui服务;查看storm集群:访问nimbus.host:/8080,即可看到storm的ui界面
/opt/storm/1/bin/storm ui & 
#启动supervisor
/opt/storm/2/bin/storm supervisor &
/opt/storm/3/bin/storm supervisor &
#启动日志查询 :host:8000
/opt/storm/1/bin/storm logviewer &
           

10.验证

(1)Storm UI

打开http://localhost:8080

本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

(2)jps

本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考

11.杀死Storm服务

jps
#杀死jps显示的进程
sudo kill 进程id
           

12.相关问题解决

(1)出现如下问题

本地伪集群模式 Ubuntu+Strom+Zookeeper部署环境事前准备安装JDK安装ZookeeperStorm安装参考
/opt/apache-storm-1.2.2/bin/storm: 行 48: 10 * 行 + 行: 语法错误: 需要操作数 (错误符号是 "行 + 行")
    /opt/apache-storm-1.2.2/bin/storm: 行 49: ((: < 26 : 语法错误: 需要操作数 (错误符号是 "< 26 ")
    /opt/apache-storm-1.2.2/bin/storm: 行 77: /usr/bin/python: 没有那个文件或目录
           

storm文件中Python指向不对,可对storm文件进行如下修改:

(1)打开文件

cd /opt/apache-storm-1.2.2/bin 
sudo gedit storm
           

(2)替换为你的Python版本

# find pyhton >= 2.6
if [ -a /usr/bin/python2.6]; then
  PYTHON=/usr/bin/python3
fi
if [ -z "$PYTHON" ]; then
  PYTHON=/usr/bin/python3
fi
           

参考

https://blog.csdn.net/zbj18314469395/article/details/86064849

https://my.oschina.net/zctzl/blog/1631603

https://blog.csdn.net/LWJ285149763/article/details/81053473

http://www.cnblogs.com/lsdb/p/7297731.html

https://www.cnblogs.com/senlinyang/p/7833669.html

https://www.jianshu.com/p/6f5002ddceb4