zookeeper 密码_搭建zookeeper集群

8e20c55f5db6feb4917836152333ab38.png

前言

本文章主要就是从0开始搭建zookeeper集群环境,首先给读者介绍一下我的环境,我有三台centos7的Linux集群,分别命名为node1,node2,node3,搭建的是完全分布式集群,zookeeper版本为3.4.2。望读者悉知,以免误了时光。

提前安装工具

在zookeeper我们需要nc这个工具,所以,我们提前安装一下

yum install nc -y 

记得三台机器上都要安装哟!

下载

第一步就是下载安装包,我建议所有的安装都去官方的来源下载,避免第三方会改动代码,或者代码不完整,染上病毒也是极其不妥的。

官方地址:

https://zookeeper.apache.org/

如果英语好的,可以自行找到需要下载的版本,如果英语不好的就可以直接根据下面我给出的地址下载即可,省去了页面寻找的时间。

https://archive.apache.org/dist/zookeeper/zookeeper-3.4.2/zookeeper-3.4.2.tar.gz

打开我们得服务器,首先我们现在node1节点上搭建成功,后面复制就行了。读者如不知自己node1为何,可随意自行挑选一台服务器来决定即可,此不慎重要,自行决断方可。

本文使用wget下载工具来下载zookeeper,如果读者没有安装,可先安装一下,命令如下。

yum install wget -y

然后开始下载,命令如下:

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.2/zookeeper-3.4.2.tar.gz

下载速度不尽相同,各位需要根据网速多少来等待上那么一段时间,听个小曲也是极好的。

下载完成如图所示:

8db4135688c8ee16321d5b0cc1376f02.png

安装

上一步,我们已经下载好安装到服务器上,那么接下来就是安装了,我们下载的安装包只需要解压就相当于安装了,不需要其他的软件那种make之类的,所以,解压目录就是安装目录,各位需要各自找个好目录来安装哟。我解压的目录是在/opt/bigdata下面。

解压命令如下:

 tar -xzvf zookeeper-3.4.2.tar.gz -C /opt/bigdata/ #输入完命令后回车

然后切换到解压的目录

cd /opt/bigdata

13ec4df50bbcc724ad2524bc30ee2131.png

看到图中的zookeeper-3.4.2就表示安装成功。

接下来的操作稍微有点特殊,给读者简单介绍一下,此前,我在我Linux用户建立了hadoop这个用户,我设想的是hadoop集群的操作都用这个用户这个来操作,所以,zookeeper一样,读者可根据自己的情况来决断,是否和我一样。

#按照安装hadoop的方式,将zookeeper的安装目录的所属组修改为hadoop:hadoop
#修改zookeeper安装目录的所属用户和组为hadoop:hadoop
chown -R hadoop:hadoop zookeeper-3.4.2/
#修改zookeeper安装目录的读写权限
chmod -R 755 zookeeper-3.4.2/

配置环境变量

这一步很重要,首先上面那一步,如果读者并没有hadoop这个用户,可以直接在root用户下面来操作我接下来的命令,如果是配置了其他的用户,需要切换到相应的目录下面。

su - hadoop # 切换到hadoop用户目录下面,读者可以根据自己的用户替换hadoop相应的字段

f47381141423cbf08fab70bba9636313.png

切换完之后,主要的变化就是说原先的root,变成了切换到的用户下面。

然后切换到用户的家目录下面

54d5f48a18e0b873c8b298201c601f11.png
vim .bash_profile

0897ecd6570a3b4fc3faca3f825d56d0.png

加入上面的三行内容,然后不要忘记source一下。

source .bash_profile # 这一步很重要,不进行的话,上面的配置就没啥用了

修改集群的配置文件

切换到配置文件目录

/opt/bigdata/zookeeper-3.4.2/conf

7dd59b2dd0a3cd7c8bf166a688672c8a.png

查看文件,发现其中有一个zoo_sample.cfg文件,这个是默认的一个模板配置。

我们复制一下他,然后改个名字

cp zoo_sample.cfg zoo.cfg

然后修改文件里面的内容

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.

dataDir=/opt/bigdata/zkdata

# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
# 这里增加三行内容
server.1=node1:2888:3888 
server.2=node2:2888:3888 
server.3=node3:2888:3888                                      

看到上面的配置文件,我需要改动的就是,把dataDir的内容换成/opt/bigdata/zkdata

写到这里,我要着重介绍一下,我们改的这个配置到底是干啥的。

我们知道zookeeper是一个集群的管理协调工具,说白了,就是管理其他的服务的一个工具,那至于怎么管理的,我会找文章来写,简单来说就是其他的服务会在zookeeper服务下面注册一个节点,zookeeper会进行监听这个节点,节点也是数据,可以理解为一个目录,或者文件,那么这个dataDir配置项就是用来存贮节点的一个目录,读者可以选择自己喜欢的位置来更改,我这里是选择了/opt/bigdata/zkdata下面。

这里要特别注意一下:记得这个一定要自己手敲,不要复制,后面不要出现空格等,不然就会出现无法想象的问题,这一点是很坑的。

然后增加三行内容:

server.1=node1:2888:3888 
server.2=node2:2888:3888 
server.3=node3:2888:3888   

解释一下

sever.1表示服务一

node1表示节点一,这里可以用当前机器上的IP地址来代替,因为我在服务上的host中配置了node1节点的解析所以可以这么写,然后后面的就默认吧

配置完之后保存。

创建myid文件

还记得上面我配置了datadir目录吗?如果没有这个目录的话,记得要创建哦,上面配置的时候我们一直在hadoop用户目录下面,如果读者的配置的目录对于当前用户来说有读写权限的话就不用改,但是我没有,所以我需要更改用户,我要切换回root用户。

su - root

46aa32f806a3879dc391370878aa86df.png

会提示你输入密码,各自输入一下即可。

因为服务器上现在还没有这个目录,所以我需要创建一下,读者可自行决定。

cd /opt/bigdata
mkdir zkdata

然后进入zookeeper目录创建myid文件

cd zkdata
vim myid

然后在文件里面输入数字1即可。

到这里了zookeeper可能有点迷茫,这是为啥哦?

是这样子滴,zookeeper想要集群来的话,没个服务器上的zookeeper必须要有一个唯一的不重复的id,我们这里写的1就是表示这台服务器上的zookeeper的ID为1,其他的服务器同样也需要创建这个文件,但是id不能写成1,可以写成2,3.。。这样子一直下去,有几台集群就写到多少,zookeeper后面可是通过这个id来管理集群的。

OK,解释完毕,还要赋予hadoop用户对zookeeper的执行读写权限。

cd ..
chown -R hadoop:hadoop zkdata/
chmod -R 755 zkdata/

复制zookeeper到其他的机器上

通过上面的步骤,我们就把一台服务上的zookeeper给搭建好了,接下来就搭建其他服务器。

那就是将上面安装好的复制到其他机器上,根据我的命令读者自行更改即可。

scp -r /opt/bigdata/zkdata node2:$PWD
scp -r /opt/bigdata/zkdata node3:$PWD
scp -r /opt/bigdata/zookeeper-3.4.2/ node2:/opt/bigdata/
scp -r /opt/bigdata/zookeeper-3.4.2/ node3:/opt/bigdata/

修改node2和node3节点的权限问题

这个时候我们切到node2服务器上面

cd /opt/bigdata
chown -R hadoop:hadoop zkdata/
chmod -R 755 zkdata/
cd /opt/bigdata/
chown -R hadoop:hadoop zookeeper-3.4.2/
chmod -R 755 zookeeper-3.4.2/

然后切换到node3节点上面:

cd /opt/bigdata
chown -R hadoop:hadoop zkdata/
chmod -R 755 zkdata/
cd /opt/bigdata/
chown -R hadoop:hadoop zookeeper-3.4.2/
chmod -R 755 zookeeper-3.4.2/

修改node2和node3上面myid文件的内容

切换到node2上面

vim /opt/bigdata/zkdata/myid
# 将1改成2
# 保存 wq!

切换到node3上面同node2一样的操作,不同是需要把1改成3

vim /opt/bigdata/zkdata/myid
# 将1改成3
# 保存 wq!

配置node2和node3的zookeeper环境变量

切换到node2上面

su - hadoop
vim .bash_profile

修改文件内容

3169f1098e2d5dd30a69838086f21c3f.png
source .bash_profile

然后切换到node3上,同样的操作再来一遍。

补充解决坑

按说我们已经安装完毕了,但是因为这个3.4.2这个版本有点问题,具体什么问题呢?就会启动之后如果想查看状态会有这个问题:

ac17150c1ac401c525dfb7db499f4177.png

所以,我就直接提前给同学们把坑给填上。

cd /opt/bigdata/zookeeper-3.4.2/bin
vim zkServer.sh

然后把按照图示把-q 1 给删除掉

3bd3250d830701268cb49e5c68950e96.png

然后保存。记得三台节点都要做同样的操作哦!

启动集群

切换到node1,node2,node3,分别执行

zkserver.sh start

查看状态

切换到node1,node2,node3分别执行

zkServer.sh status

如果你看到如下的,就说明整个集群安装成功了。

我的node1如下

61722e39946fa718954b2c6975cc5ece.png

我的node2如下:

80fca111da3c4c6d71b04fe425d7834b.png

我的node3如下:

2780b749b48d03f8fb50669f2e584fc6.png

总结

以上就是本次zookeeper集群安装的全部内容了,如果您遇到了什么错误,欢迎在下面给我留言,我们共同学习,也欢迎关注本专栏,有新的内容就会推送给您。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值