Zookeeper3,2024年最新【干货】

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
img

正文

initLimit 时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。

syncLimit:在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。

dataDir:存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里

dataLogDir:事务日志输出目录。

clientPort:客户端连接server的端口,即对外服务端口

server.1=dn01:2888:3888:这里的1是一个数字,与myid文件中的id是一致的。右边可以配置两个端口,第一个端口用于F和L之间的数据同步和其它通信,第二个端口用于Leader选举过程中投票通信。


zookeeper集群是clickhouse实现分布式集群的重要组件,需要提前搭建好。由于clickhouse数据量极大,避免给zookeeper带来太大的压力,最好给clickhouse单独部署一套集群,不要和其他业务公用。


### 7.增加用户权限(如果zk升级,不安装ckman,此步骤可以忽略)


添加admin 一行数据  
 vim /etc/sudoers



Same thing without a password

%wheel ALL=(ALL) NOPASSWD: ALL

admin ALL=(ALL) NOPASSWD: ALL


### 8.拷贝ZK3.4.6元数据信息至ZK3.6.2元数据目录下


日志:/data01/zookeeper-3.4.6/dataLogDir 根据选择性拷贝或者不拷贝即可;  
 主要是拷贝/data01/zookeeper-3.4.6/dataDir目录信息;  
 特别注意myid与server id与老版本保持一致,dataDir与dataLogDir与老版本保持一致。



cp -r /data01/zookeeper-3.4.6/dataDir /data01/zookeeper-3.6.2/dataDir
cp -r /data01/zookeeper-3.4.6/dataLogDir /data01/zookeeper-3.6.2/dataLogDir


## 二 配置环境变量及启动ZK


### 1.配置ZK环境变量


vim /etc/profile



export ZK_HOME=/opt/zookeeper-3.6.2
export PATH=PATH:PATH:PATH:ZK_HOME/bin


### 2.环境变量生效



source /etc/profile


### 3.进一步验证ZK可用性(如果坚信自己安装无误,此步骤可省略)


命令行模式



[root@dn01 ~]# zkCli.sh


新增目录



[zk: localhost:2181(CONNECTED) 0] create /test
Created /test


获取指定路径上的数据



[zk: localhost:2181(CONNECTED) 0] get /test
null


删除指定路径上的数据



[zk: localhost:2181(CONNECTED) 1] delete /test
[zk: localhost:2181(CONNECTED) 2] get /test
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /test


### 4.割接ZK版本(逐一操作升级)


查看zookeeper状态,先从follower开始升级,最后升级leader。



zkServer.sh status


#### 1)停止老版本服务并查看zk状态



cd /opt/zookeeper-3.4.6/bin
./zkServer.sh stop
./zkServer.sh status


#### 2)启动ZK测试新版本服务


手动启动ZooKeeper,确认是否存在任何错误信息。可以在命令行中输入’./zkServer.sh start-foreground’,这将以前台模式启动ZooKeeper,并将所有日志输出到终端上,以便更好地调试。



zkServer.sh start-foreground


观察启动日志加载的环境变量是否是3.6.2,如果不是,需要重新登录服务器,因为环境变量在当前窗口未生效。


#### 3)正常启动ZK新版本服务


如果前者测试启动无误,可以正常启动



zkServer.sh start


#### 4)查看ZK状态



zkServer.sh status


#### 5)查看ZK升级后数据是否还在



数据没变,则说明升级成功!


### 5.编写 zookeeper.service 文件便于ZK自启动(根据个人需求,否则可以忽略此步骤)



[Unit]
Description=zookeeper.service
After=network.target

[Service]
Type=forking
Environment=ZOO_LOG_DIR=/data01/zookeeper-3.6.2/dataLogDir/
Environment=JAVA_HOME=/usr/java/jdk1.8
ExecStart=/opt/zookeeper-3.4.6/bin/zkServer.sh start
ExecStop=//opt/zookeeper-3.4.6/bin/zkServer.sh stop
ExecReload=/opt/zookeeper-3.4.6/bin/zkServer.sh restart
PIDFile=/data01/zookeeper-3.6.2/dataDir/zookeeper_server.pid
User=root

[Install]
WantedBy=multi-user.target


### 6.设置ZK开机自启动(接步骤6,根据个人需求,否则可以忽略此步骤)


设置开机自启



systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper


开启端口



firewall-cmd --zone=public --add-port=2181/tcp --permanent


## 三 回滚


升级过程中如果出现问题,无法解决,需要执行回滚操作。  
 以下步骤为逐一操作某一台服务(先停止,再启动)!!!


### 1.停止当前3.6.2版本ZK进程(逐一操作降级)


先从follower开始降级,最后降级leader。



zkServer.sh stop
zkServer.sh status


### 2.启动3.4.6版本zk及配置zk环境变量(逐一启动)


vim /etc/profile



export ZK_HOME=/opt/zookeeper-3.4.6
export PATH=PATH:PATH:PATH:ZK_HOME/bin


source /etc/profile



cd /opt/zookeeper-3.4.6/bin
./zkServer.sh start
./zkServer.sh status


查看启动状态,如果正常。总结升级失败原因,再计划下次升级。




---


## 总结


1.升级过程一定要保持myid与zookeeper\_server.pid一致  
 2.升级过程一定要保持dataDir,dataLogDir与原版本一致  
 3.保证数据质量和集群可用性






**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
![img](https://img-blog.csdnimg.cn/img_convert/d2a5747996d3f2edf8cbab9bcdd6eea4.png)

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

过程一定要保持dataDir,dataLogDir与原版本一致  
 3.保证数据质量和集群可用性






**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)**
[外链图片转存中...(img-tySPdtPg-1713159802355)]

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值