本地伪集群模式 Ubuntu+Strom+Zookeeper

2 篇文章 0 订阅
2 篇文章 0 订阅

部署环境

软件版本
Ubuntu18.04.2
JDK8u221
Strom1.2.2
Zookeeper3.4.14

事前准备

共享目录

共享文件夹
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

在这里插入图片描述

安装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

在这里插入图片描述
(2)客户端

cd /opt/zookeeper/1/bin
#客户端
./zkCli.sh -server localhost:2181

在这里插入图片描述

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个节点的配置文件

sudo gedit /opt/storm/1/conf/storm.yaml #编辑本地配置文件

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
在这里插入图片描述
(2)jps
在这里插入图片描述

11.杀死Storm服务

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

12.相关问题解决
(1)出现如下问题
在这里插入图片描述

    /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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值