先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注大数据)
正文
1、如果整个zk集群只有一个zk节点(即serverId只有它本身),这时默认运行的是单机模式,如果需要运行在集群模式下,需要加入standaloneEnabled=false的配置。
2、使用zkCli客户端提供的reconfig命令,需要修改/zookeper/config节点,普通账号对该节点上的数据只有ACL中的查看权限,有如下两种方法可以解决:
①关闭ACL,配置文件加入 skipACL=yes
②生成超级管理员账号:
Linux可直接执行如下命名:
echo -n cjian:111111 | openssl dgst -binary -sha1 | openssl base64
cjian:111111 为用户名和密码 ,启动脚本增加如下配置
-Dzookeeper.DigestAuthenticationProvider.superDigest=cjian:ST25maIOy8WImjpR7Nf2/D2wFXQ=
使用zkCli连接上后,执行addauth digest cjian:111111
之后就可以修改/zookeper/config节点的数据了,即可执行reconfig命令
3、要使用reconfig命令需要配置reconfigEnabled=true
实操一下:
下载zookeeper不做赘述~
一、启动一个zk
配置第一个zk(myid为0),配置如下:
initLimit=10
syncLimit=5
skipACL=yes
# 加上这个配置 可通过 echo stat|nc ip:port 命令查看实例角色
4lw.commands.whitelist=*
clientPort=2181
tickTime=2000
dataDir=/home/zookeeper/zookeeper1/data
dataLogDir=/home/zookeeper/zookeeper1/log
# 关闭 单机模式
standaloneEnabled=false
# 支持reconfig
reconfigEnabled=true
admin.enableServer=false
server.0=127.0.0.1:2888:3888
启动后,执行
[root@localhost zookeeper1]# echo stat|nc 127.0.0.1 2181
Zookeeper version: 3.8.1-74db005175a4ec545697012f9069cb9dcc8cdda7, built on 2023-01-25 16:31 UTC
Clients:
/127.0.0.1:42266[1](queued=0,recved=224,sent=224)
/127.0.0.1:42288[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/1.4933/42
Received: 226
Sent: 225
Connections: 2
Outstanding: 0
Zxid: 0x90000000a
Mode: leader
Node count: 6
Proposal sizes last/min/max: 239/36/239
发现zk 0 的角色为leader,符合预期
二、扩容一个zk
拷贝一份,myid修改为1,配置文件修改如下:
initLimit=10
syncLimit=5
skipACL=yes
# 加上这个配置 可通过 echo stat|nc ip:port 命令查看实例角色
4lw.commands.whitelist=*
clientPort=2182
tickTime=2000
dataDir=/home/zookeeper/zookeeper2/data
dataLogDir=/home/zookeeper/zookeeper2/log
# 关闭 单机模式
standaloneEnabled=false
# 支持reconfig
reconfigEnabled=true
admin.enableServer=false
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
注意: 这里扩容的实例的配置需要加上目标集群leader的server.id配置,如果只配置server.1=127.0.0.1:2889:3889,启动后,它是个leader,这时我们在2181的客户端连接上执行reconfig -add XXX命令时,会提示:
[zk: localhost:2181(CONNECTED) 0] reconfig -add server.1=127.0.0.1:2889:3889:participant;2182
No quorum of new config is connected and up-to-date with the leader of last commmitted config - try invoking reconfiguration after new servers are connected and synced
正常配置并启动完成后,在2181的客户端连接上执行add命令:
(这里连上2182的客户端执行也是一样的,该请求zk内部会转发给leader)
[zk: localhost:2181(CONNECTED) 3] reconfig -add server.1=127.0.0.1:2889:3889:participant;2182
Committed new configuration:
server.0=127.0.0.1:2888:3888:participant
server.1=127.0.0.1:2889:3889:participant;0.0.0.0:2182
# 这是一个新的配置文件版本号标识,会生成zoo.cfg.dynamic.version=900000005文件
version=900000005
[root@localhost zookeeper1]# cat conf/zoo.cfg.dynamic.900000005
server.0=127.0.0.1:2888:3888:participant
server.1=127.0.0.1:2889:3889:participant;0.0.0.0:2182
[root@localhost zookeeper2]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper2/bin/../conf/zoo.cfg
Client port not found in static config file. Looking in dynamic config file.
Client port found: 2182. Client address: 0.0.0.0. Client SSL: false.
Mode: follower
发现扩容后的实例角色为follower,符合预期,连上客户端查看配置:
[root@localhost zookeeper2]# ./bin/zkCli.sh -server 127.0.0.1:2182
...
[zk: 127.0.0.1:2182(CONNECTED) 0] config
server.0=127.0.0.1:2888:3888:participant
server.1=127.0.0.1:2889:3889:participant;0.0.0.0:2182
version=900000005
三、缩容一个zk
现在我们将第二步扩容的zk,拿掉,连上2181的客户端,并执行命令
[zk: localhost:2181(CONNECTED) 7] reconfig -remove 1
Committed new configuration:
server.0=127.0.0.1:2888:3888:participant
version=90000000d
[root@localhost zookeeper1]# cat conf/zoo.cfg.dynamic.90000000d
server.0=127.0.0.1:2888:3888:participant
查看下2182的配置和角色
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注大数据)
[外链图片转存中…(img-YgiVGK3M-1713333642854)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!