开源大数据集群部署(十五)Zookeeper集群部署
作者:櫰木
1、集群规划
| 主机 | 版本 | 角色 | 系统用户 |
|---|---|---|---|
| hd1.dtstack.com | 3.7.1 | follower | zookeeper |
| hd2.dtstack.com | 3.7.1 | leader | zookeeper |
| hd3.dtstack.com | 3.7.1 | follower | zookeeper |
2、zookeeper kerberos主体创建
在生产中zk服务端和客户端票据可以设置成不通名称或相同名称,本次设置成同一个票据名称zookeeper/HOST@DTSTACK.COM格式表示zk服务端和客户端票据。
| 票据名 | 票据文件 | 文件分布 |
|---|---|---|
| zookeeper/hd1.dtstack.com@DTSTACK.COM | /etc/security/keytab/zookeeper.keytab | hd1.dtstack.com主机 |
| zookeeper/hd2.dtstack.com@DTSTACK.COM | /etc/security/keytab/zookeeper.keytab | hd2.dtstack.com主机 |
| zookeeper/hd3.dtstack.com@DTSTACK.COM | /etc/security/keytab/zookeeper.keytab | hd3.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
相关文章:
开源大数据集群部署(十五)Zookeeper集群部署
作者:櫰木 1、集群规划 主机版本角色系统用户hd1.dtstack.com3.7.1followerzookeeperhd2.dtstack.com3.7.1leaderzookeeperhd3.dtstack.com3.7.1followerzookeeper 2、zookeeper kerberos主体创建 在生产中zk服务端和客户端票据可以设置成不通名称或相同名称&am…...
服务器镜像是什么
镜像即镜像服务器。镜像服务器与主服务器的服务内容都是一样的,只是放在一个不同的地方,分担主服务器的负载量。 可以使用,但不是原版的。在网上内容完全相同而且同步更新的两个或多个服务器,除主服务器外,其余的都被称…...
JWT原理
JWT 介绍 JWT(JSON Web Token)是一个开放标准(RFC 7519),它定义了一种简洁的、自包含的方法用于通信双方之间以 JSON 对象的形式安全地传输信息。这种信息可以被验证和信任,因为它是数字签名的。JWT通常用于…...
操作系统:一款纯正的“管理”软件
目录 前言: 1.操作系统的概念 2.操作系统的结构示意图: 3.什么是接口? 4.什么是驱动程序? 4.什么是系统调用(system call)? 5.操作系统和操作系统内核的区别 6.设计OS的核心目的 前言&…...
Mac笔记本聚焦SpotLight占用内存太高的 解法
分享一个自创的绝对有效的解决苹果电脑Mac笔记本SpotLight聚焦占用内存过高的方法! 一、背景 / 问题原因 1、Mac的聚焦功能,可以快速打开应用程序,非常方便! But,随着电脑的使用文件等越来越多,就会导致SpotLight聚焦需要更多更多甚至巨多的内存来建立索引,就会导致电脑…...
C++中.h和.hpp文件有什么区别?
在C中,.h和.hpp文件都是用于包含函数声明、类定义、宏定义等内容的头文件,它们的主要区别在于约定和习惯。 历史与来源:.h后缀是C语言头文件的标准后缀,随着C的演变,一些开发者开始使用.hpp后缀来表示C头文件ÿ…...
MongoDB聚合运算符:$derivative
$derivative聚合运算符返回返回指定窗口内的平均变化率(即求导),变化率使用以下公式计算: $setWindowFields阶段窗口中的第一个和最后一个文件。分子,等于最后一个文档的表达式的值减去第一个文档表达式的值。分母&am…...
面试官:如果你现在有20个Spring Boot微服务,如何监视所有这些Spring Boot微服务?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:如果你现在有20个Spring Boot微服务,如何监视这些微服务? 要监视所有 Spring Boot 微服务,可以使用 Spring Boot Admin 这样的监控工具。Sprin…...
冯诺依曼模型
只要我们学习计算机操作系统,就离不开对冯诺依曼体系结构。因为我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 1.什么是冯诺依曼模型呢? 如上图所示,冯诺依曼模型由…...
高低拖延个体的任务决策及执行差异
高低拖延个体的任务决策及执行差异 摘要 拖延行为普遍存在,且影响着许多人的工作.学习和生活。已有的许多研究发现拖延个体明知自己需要尽快完成某项任务,但行动上却迟迟无法付诸实践,表现出一种知行不- -”的倾向.这种倾向是否在高低拖延特质者之间存…...
数据分析Pandas专栏---第十三章<Pandas训练题(初)>
前言: 写这篇是为了弄一个富有挑战性的Pandas练习题库,涵盖了许多常见和实用的数据处理问题。通过解决这些练习,能够深入了解Pandas提供的关键功能,掌握有效处理数据的技巧和方法。 练习题库涵盖了选择特定列并创建新DataFrame、对DataFrame进…...
Delete `␍`eslint(prettier/prettier) 错误的解决方案
最近开始一个新的项目,由他人构建,clone下来后,发现页面每行都有黄色的波浪线的提示:Delete ␍eslint(prettier/prettier) ,尝试了很多方法不能解决,最后选择关闭Prettier: 在.eslintrc.js文件…...
第3周 Python字典、集合刷题
第3周 Python字典、集合刷题 单击题目,直接跳转到页面刷题,一周后公布答案。 B2125:最高分数的学生姓名28:返回字典的键值75:字符串转字典77:映射字符串中的字母87:按条件过滤字典B3632&#…...
文字校对的首选——爱校对:用户真实反馈汇编
在今日快节奏、高标准的工作环境下,准确与效率成为了每位专业人士追求的双重目标。不论是在政府机构、学术领域、企业界,还是在自由职业者的行列中,我们都面临着同一个挑战:如何在保持工作速度的同时,确保每一份文档的…...
Llama-3即将发布:Meta公布其庞大的AI算力集群
Meta,这家全球科技巨头,再次以其在人工智能(AI)领域的雄心壮志震惊了世界。3月13日,公司在其官方网站上宣布了两个全新的24K H100 GPU集群,这些集群专为训练其大型模型Llama-3而设计,总计拥有高…...
【JAVA】Date、LocalDate、LocalDateTime 详解,实践应用
Date、LocalDate、LocalDateTime 详解,实践应用 一、Date、LocalDate 简介1、 java.util.Date:2、 java.time.LocalDateTime:3、 java.time.LocalDate: 二、输出格式1、使用 java.util.Date 的示例代码如下:2、使用 ja…...
分布式链路追踪(一)SkyWalking(1)介绍与安装
一、介绍 1、简介: 2、组成 以6.5.0为例,该版本下Skywalking主要分为oap、webapp和agent三部分,oap和webapp分别用于汇总数据和展示,这两块共同组成了Skywalking的平台;agent是探针,部署在需要收集数据的…...
蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛
一、题目 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意&…...
SCAU 8580 合并链表
8580 合并链表 时间限制:1000MS 代码长度限制:10KB 提交次数:3724 通过次数:2077 题型: 编程题 语言: G;GCC Description 线性链表的基本操作如下: #include<stdio.h> #include<malloc.h> #define ERROR 0 #define OK 1 #define ElemType inttyped…...
Docker安装Gitlab
下载镜像 直接下载最新版,比较大有2.36G docker pull gitlab/gitlab-ce创建数据存放的目录位置 按自己习惯位置创建目录 mkdir -p /usr/local/docker/docker_gitlab编写docker-compose.yml 在上面创建的挂载目录里面(/usr/local/docker/docker_gitl…...
AI Agent的隐私保护设计:合规前提下的用户数据使用策略
AI Agent的隐私保护设计:合规前提下的用户数据使用策略引言 各位技术同行、AI应用开发者、产品经理以及对用户数据与智能交互边界敏感的读者朋友们,大家好!我是深耕AI工程化落地与数据治理领域8年的技术博主「码海拾遗」。在过去的3年里&…...
Java SpringBoot+Vue3+MyBatis 图书进销存管理系统系统源码|前后端分离+MySQL数据库
摘要 随着信息技术的快速发展,传统图书进销存管理方式逐渐暴露出效率低下、数据冗余和人工操作繁琐等问题。图书行业对高效、精准的管理系统需求日益增长,尤其在库存管理、销售统计和数据分析方面,亟需一套智能化解决方案。基于前后端分离架构…...
信创运维避坑指南:统信UOS服务器离线安装软件,这些细节你注意了吗?
信创运维实战:统信UOS服务器离线部署全流程精解 在信创产业快速发展的背景下,越来越多的企业开始将业务系统迁移到国产操作系统平台。统信UOS作为国产操作系统的代表之一,其服务器版本在政务、金融等关键领域得到广泛应用。然而,…...
计算机毕业设计:Python智慧出行数据分析系统 Django框架 可视化 数据大屏 数据分析 大数据 机器学习 深度学习(建议收藏)✅
1、项目介绍 技术栈:Python语言、Django框架、ECharts可视化库、数据大屏技术。 功能模块: 首页模块数据大屏模块数据分析模块数据查看模块登录模块后台管理模块订单管理模块用户管理模块 项目介绍:滴滴出行数据分析平台基于Django框架开发&a…...
Amundsen多租户架构:企业级数据隔离的终极解决方案
Amundsen多租户架构:企业级数据隔离的终极解决方案 【免费下载链接】amundsen Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data. 项目地址: https://git…...
贪心算法解决区间问题:合并、选点、覆盖、最大不相交
一、前言 区间问题是贪心算法中的高频考点,而贪心算法是解决这类问题的 “黄金搭档”。本文将系统讲解基于贪心算法的四类经典区间问题:区间合并、区间选点、区间覆盖、最大不相交区间数量,帮助你彻底掌握这类问题的解题思路。 二、核心思想…...
最新全开源礼品代发系统源码_电商快递代发_一件代发系统
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新全开源礼品代发系统源码/电商快递代发/一件代发系统 测试环境:Nginx PHP7.2 MySQL5.6 二、效果展示 1.部分代码 代码如下(示例): public functi…...
为什么国内还没有出现网络安全巨头公司
国内坐拥广阔市场、政策持续加码,却始终没能诞生一家具备全球话语权、真正统领行业的龙头企业。看似热闹的产业图景背后,并非技术实力缺位,而是从需求逻辑、商业模式到市场生态,全链条深陷结构性困局,从根源上锁死了网…...
拓朋N86公网车载台:邮政分拣车高效协同的通信保障
在繁忙的邮政包裹分拣中心,效率与协同是每辆分拣车与调度人员最为关心的两大要素。在这样一片高速运转而充满挑战的天地里,拓朋N86公网集群车载台以其出色的性能,悄然成为了分拣车队的隐形指挥中枢。 全国覆盖,沟通无阻 分拣中心往…...
OpenClaw+千问3.5-9B:自动化测试报告生成器
OpenClaw千问3.5-9B:自动化测试报告生成器 1. 为什么需要自动化测试报告 作为开发团队中的测试负责人,我每周都要面对数十份测试报告的手工整理工作。从Jenkins导出原始数据、用Excel制作图表、再到Word中排版成文档,整个过程至少消耗3-4小…...
