用docker在Hadoop集群上搭建zookeeper集群

准备环境:已经用docker搭建好Hadoop集群

1、在zookeeper官网下载zookeeper压缩包,点击蓝色字体即可进入官网

选择你想要的版本目录,点进去后点击你要的版本-bin.tar.gz压缩包,这里用3.5.7版本做演示

 下载好后上传虚拟机主机,这里用Xftp7上传,可能会上传出错

 有三种可能:防火墙没关闭,虚拟机主机内存不够,文件权限不够

(1)查看防火墙状态:

systemctl status firewalld

关闭防火墙:

systemctl stop firewalld

 (2)查看内存

(3)赋予权限

sudo chmod 777 /opt/module

 我上传到/opt/module文件夹,注意是上传的那个文件夹的全路径

2、解压、改名和修改配置

解压可以在Xftp7手动解压或者用tar命令行,因为文件夹名字太长了,操作不方便,所以解压后给文件夹改名为zookeeper-3.5.7

修改配置:

(1)将/opt/module/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg;

(2)打开zoo.cfg文件,修改dataDir路径:

修改如下内容:

        dataDir=/opt/module/zookeeper-3.5.7/zkData

(3)在/opt/module/zookeeper-3.5.7这个目录下创建zkData文件夹

 3、复制zookeeper-3.5.7文件夹到Hadoop集群的每个容器里

docker cp /opt/module/zookeeper-3.5.7 hadoop1:/opt/module/zookeeper-3.5.7

docker cp /opt/module/zookeeper-3.5.7 hadoop2:/opt/module/zookeeper-3.5.7

docker cp /opt/module/zookeeper-3.5.7 hadoop3:/opt/module/zookeeper-3.5.7

cp后面先加主机的zookeeper-3.5.7文件夹的全路径,再加个空格,然后加上容器名和想要上传的文件夹路径

 hadoop1、hadoop2、hadoop3是我Hadoop集群的三个容器名,换成你自己的就行了

4、运行容器并进入容器

运行容器:docker start 容器名

 进入容器:docker exec -it 容器名 /bin/bash

5、启动zookeeper服务器

进入/opt/module/zookeeper-3.5.7文件夹,输入:

cd /opt/module/zookeeper-3.5.7

再启动zookeeper服务器,输入:

./bin/zkServer.sh start

这时会提示权限不够

给文件赋予权限,输入:

 chmod a+xwr ./bin/zkServer.sh

再启动zookeeper服务器,输入:

./bin/zkServer.sh start

启动成功!其他容器重复 4、5步骤即可。

6、集群搭建

在每个容器中重复以下操作:

(1)进入zkData文件夹,输入:

cd /opt/module/zookeeper-3.5.7/zkData

(2)添加配置文件,配置服务器编号,输入:

vi myid

 设置hadoop1为第一台zookeeper服务器 

 设置hadoop2为第二台zookeeper服务器 

设置hadoop3为第三台zookeeper服务器 

(3)配置zoo.cfg文件

进入conf文件夹,输入:

cd /opt/module/zookeeper-3.5.7/conf

修改zoo.cfg文件,输入:

vi zoo.cfg

添加:

#######################cluster##########################
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

参数解读:server.A=B:C:D

A:服务器编号

B:服务器ip地址或者域名

C:服务器与leader服务器通信的端口号

D:选举端口号(leader服务器挂了之后,follower服务器重新选举leader服务器的端口号)

(4)每个容器配置好后,都重启zookeeper服务器,输入:

cd /opt/module/zookeeper-3.5.7

再输入:

./bin/zkServer.sh start

查看节点运行状态,输入:

./bin/zkServer.sh status

hadoop1:follower 

hadoop2:follower 

hadoop3:leader

 

 7、在hadoop1中编写管理集群脚本文件(需要配置ssh免密登录

(1)编写zk.sh

把文件放在/opt/module/zookeeper-3.5.7/bin目录下,输入

cd /opt/module/zookeeper-3.5.7/bin

再输入:

vi zk.sh

#!/bin/bash

case $1 in
"start"){
	for i in hadoop1 hadoop2 hadoop3
	do
		echo ------------ zookeeper $i 启动 --------------
		ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
	done
}
;;
"stop"){
	for i in hadoop1 hadoop2 hadoop3
	do
		echo ------------ zookeeper $i 停止 --------------
		ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
	done
}
;;
"status"){
	for i in hadoop1 hadoop2 hadoop3
	do
		echo ------------ zookeeper $i 状态 --------------
		ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
	done
}
;;
esac

将上面的内容填入zk.sh中,保存退出后,输入:

./zk.sh start

 ./zk.sh status

./zk.sh stop

 (2)编写jpsall

还是放在/opt/module/zookeeper-3.5.7/bin目录下,输入:

vi jpsall

#!/bin/bash

# 执行jps命令查询每台服务器上的节点状态
echo ======================集群节点状态====================

for i in hadoop1 hadoop2 hadoop3
do
        echo ====================== zookeeper $i ====================
        ssh $i "jps"
done
echo ======================执行完毕====================

将上面的内容填入jpsall中,保存退出后,输入:

./jpsall

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值