开源大数据集群部署(十五)Zookeeper集群部署

news/2024/4/29 11:44:30

作者:櫰木

1、集群规划

主机版本角色系统用户
hd1.dtstack.com3.7.1followerzookeeper
hd2.dtstack.com3.7.1leaderzookeeper
hd3.dtstack.com3.7.1followerzookeeper

2、zookeeper kerberos主体创建

在生产中zk服务端和客户端票据可以设置成不通名称或相同名称,本次设置成同一个票据名称zookeeper/HOST@DTSTACK.COM格式表示zk服务端和客户端票据。

票据名票据文件文件分布
zookeeper/hd1.dtstack.com@DTSTACK.COM/etc/security/keytab/zookeeper.keytabhd1.dtstack.com主机
zookeeper/hd2.dtstack.com@DTSTACK.COM/etc/security/keytab/zookeeper.keytabhd2.dtstack.com主机
zookeeper/hd3.dtstack.com@DTSTACK.COM/etc/security/keytab/zookeeper.keytabhd3.dtstack.com主机

在hd1.dtstack.com主机上root权限下创建kerberos主体,使用zookeeper系统用

在每台机器上执行生成脚本,执行此脚本可自动生成principal(在每个节点执行)

bash /root/bigdata/getkeytabs.sh /etc/security/keytab/zookeeper.keytab  zookeeper

3、zookeeper 安装

修改配置文件

root@hd2.dtstack.com ~]# cd /root/bigdata && tar -xzvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt
[root@hd2.dtstack.com ~]# ln -s /opt/apache-zookeeper-3.7.1-bin/ /opt/zookeeper
[root@hd2.dtstack.com ~]#cd /opt/zookeeper
[root@hd2.dtstack.com conf]#cat >zoo.cfg<<EOF
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data/
dataLogDir=/data/zookeeper/log/
clientPort=2181
maxCnxns=20000
maxClientCnxns=2000
minSessionTimeout=4000
maxSessionTimeout=60000
autopurge.purgeInterval=24
autopurge.snapRetainCount=5
quorum.cnxn.threads.size=20
#zk集群服务地址配置
server.1=hd1:2888:3888
server.2=hd2:2888:3888
server.3=hd3:2888:3888
#zk kerberos配置
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
kerberos.removeHostFromPrincipal=true
kerberos.removeRealmFromPrincipal=true
requireClientAuthScheme=sasl
quorum.auth.enableSasl=true
quorum.auth.learner.saslLoginContext=Learner
quorum.auth.server.saslLoginContext=Server
quorum.auth.kerberos.servicePrincipal=zookeeper/hd1.dtstack.com@DTSTACK.COM
4lw.commands.whitelist=mntr,conf,ruok,cons
EOF

说明:

  • 改配置文件中ssl配置(标红色部分)目的是解决ranger 配置hive等组件在连接测试过程出现无权限问题
  • 创建SSL认证文件zookeeper-jaas.conf、java.env
root@hd2.dtstack.com conf]# cat >zookeeper-jaas.conf<<EOF
Server {com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=truekeyTab="/etc/security/keytab/zookeeper.keytab"storeKey=trueuseTicketCache=falseprincipal="zookeeper/hd2.dtstack.com@DTSTACK.COM";
};
Client {com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=truekeyTab="/etc/security/keytab/zookeeper.keytab"storeKey=trueuseTicketCache=falseprincipal="zookeeper/hd2.dtstack.com@DTSTACK.COM";
};
Learner {com.sun.security.auth.module.Krb5LoginModule requireduseKeyTab=truekeyTab="/etc/security/keytab/zookeeper.keytab"storeKey=trueuseTicketCache=falseprincipal="zookeeper/hd2.dtstack.com@DTSTACK.COM";
};
EOF

说明:

  • principal用具体票据名,不能用hadoop/host_name@DTSTACK.COM或hadoop/_HOST@DTSTACK.COM,否则报错
  • zk服务端和客户端票据在kerberos中已经创建,此处省略,客户端和服务端票据是不一样的
root@hd2.dtstack.com conf]# cat >java.env<<EOF
export JVMFLAGS="-Djava.security.auth.login.config=/opt/zookeeper/conf/zookeeper-jaas.conf"
export JAVA_HOME="/opt/java"
EOF[root@hd2.dtstack.com conf]# cat >/data/zookeeper/data/myid<<EOF
2
EOF

同步到其他机器

root@hd2.dtstack.com conf]# cd /opt/
[root@hd2.dtstack.com software]# scp -r apache-zookeeper-3.7.1-bin root@hd1.dtstack.com:/opt/
[root@hd2.dtstack.com software]# scp -r apache-zookeeper-3.7.1-bin root@hd3.dtstack.com:/opt/

在其他机器修改对应配置

hd1.dtstack.com主机root权限:

[root@hd1.dtstack.com conf]# cat >/data/zookeeper/data/myid<<EOF
1
EOF
[root@hd1.dtstack.com ~]# cd /opt/apache-zookeeper-3.7.1-bin/conf
[root@hd1.dtstack.com ~]# sed -i 's#hd2.dtstack.com#hd1.dtstack.com#g' zookeeper-jaas.conf
[root@hd1.dtstack.com ~]# sed -i 's#hd2.dtstack.com#hd1.dtstack.com#g' zoo.cfg

hd3.dtstack.com主机root权限:

[root@hd3.dtstack.com conf]# cat >/data/zookeeper/data/myid<<EOF
3
EOF
[root@hd3.dtstack.com ~]# cd /opt/apache-zookeeper-3.7.1-bin/conf
[root@hd3.dtstack.com ~]# sed -i 's#hd2.dtstack.com#hd3.dtstack.com#g' zookeeper-jaas.conf
[root@hd3.dtstack.com ~]# sed -i 's#hd2.dtstack.com#hd3.dtstack.com#g' zoo.cfg

4 zookeeper集群启停

zk集群启停脚本zk_cluster.sh内容如下:

[root@hd1.dtstack.com apache-zookeeper-3.7.1-bin]# cat >zk_cluster.sh<<EOF
#!/bin/bashcase $1 in
"start"){
for i in hd1.dtstack.com hd2.dtstack.com hd3.dtstack.com
doecho ---------- zookeeper $i 启动 ------------
ssh $i "source /etc/profile;/opt/zookeeper/bin/zkServer.sh start"
done
};;
"stop"){
for i in hd1.dtstack.com hd2.dtstack.com hd3.dtstack.com
doecho ---------- zookeeper $i 停止 ------------    
ssh $i "source /etc/profile;/opt/zookeeper/bin/zkServer.sh stop"
done
};;
"status"){
for i in hd{1..3}
doecho ---------- zookeeper $i 状态 ------------    
ssh $i "source /etc/profile;/opt/zookeeper/bin/zkServer.sh status"
done
};;
esac
EOF

修改整体目录文件权限

[root@hd1.dtstack.com apache-zookeeper-3.6.3-bin]# chown -R zookeeper:zookeeper /opt/apache-zookeeper-3.7.1-bin

启动命令:

sh zk_cluster.sh start

停止命令:

sh zk_cluster.sh stop

查看状态命令:

sh zk_cluster.sh status

5 zookeeper集群验证

可通过执行sh zk_cluster.sh status查看
在这里插入图片描述

端口查看,命令netstat -an|grep 2181
在这里插入图片描述

进程查看,命令jps
在这里插入图片描述

至此,zk三节点集群搭建完成

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10629.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

华为数通方向HCIP-DataCom H12-821题库(多选题:161-180)

第161题 以下关于IPv6优势的描述,正确的是哪些项? A、底层自身携带安全特性 B、加入了对自动配置地址的支持,能够无状态自动配置地址 C、路由表相比IPv4会更大,寻址更加精确 D、头部格式灵活,具有多个扩展头 【参考答案】ABD 【答案解析】 第162题 在OSPF视图下使用Filt…

web的部署

首先&#xff0c;我们鼠标右击此电脑&#xff0c;管理&#xff0c;添加角色和功能 默认下一步&#xff0c; 默认下一步&#xff0c; 默认下一步&#xff0c; 勾选web&#xff0c;点击下一步&#xff0c; 点击下一步&#xff0c; 默认下一步&#xff0c; 勾选所需功能&#xff0…

宠物小精灵之收服

题目描述 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。 一天&#xff0c;小智和皮卡丘来到了小精灵狩猎场&#xff0c;里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而&#xff0c;野生的小精灵并不那么容易被收服。对于每一个野生小精灵而…

【机器学习300问】30、准确率的局限性在哪里?

一、什么是准确率&#xff1f; 在解答这个问题之前&#xff0c;我们首先得先回顾一下准确率的定义&#xff0c;准确率是机器学习分类问题中一个很直观的指标&#xff0c;它告诉我们模型正确预测的比例&#xff0c;即 还是用我最喜欢的方式&#xff0c;举例子来解释一下&#xf…

#QT(MainWindow初尝---文本编辑器)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;使用MainWindow做一个文本编辑器 3.记录 &#xff08;1&#xff09;创建几个功能 &#xff08;2&#xff09;为几个功能写实现&#xff0c;这里不能使用转到槽&#xff0c;需要自己用connect函数关联。这里的功能是QAction类&am…

力扣--最小覆盖子串--双端队列+滑动窗口

滑动窗口思路&#xff08;双端队列实现&#xff09;&#xff1a; 可以参考一下&#xff1a;力扣hot8---滑动窗口-CSDN博客以及力扣hot9---滑动窗口-CSDN博客。 使用滑动窗口有以下几个步骤&#xff1a;初始化双端队列&#xff08;将s的前t_len个元素入队&#xff0c;此时检验是…