Zookeeper安装部署
安装包下载地址:https://apache.org/dist/zookeeper/
1.下载安装包然后上传到主节点rz,centos上可使用 wget 地址
2.解压缩:tar xf 安装包
3.移动到/opt目录下mv zookeeper-3.4.12 /opt
4.修改目录权限
命令:chown -R hadoop:hadoop zookeeper-3.4.12
5.切换到解压后的文件下的conf里面,路径如下:
6.复制配置文件zoo_sample.cfg为zoo.cfg
命令:cp -a zoo_sample.cfg zoo.cfg
7.新建一个目录,用来存放数据信息(可根据自己意愿建立,但是要与下一步中的dataDIr路径一致)
命令:mkdir -p /opt/zookeeper/data
8.修改配置文件zoo.cfg中的内容,修改如下:
其中dataDir的路径为上面创建的路径,这个可以依靠自己的想法建立目录,但是要与dataDir中的路径一致。server.1 在server后面的内容是什么,等会创建的文件myid中的内容就是什么,格式:server.1 = IP:2888:3888
9.去到步骤7中创建的目录下,创建文件myid,文件内容为步骤8中server后面的内容(我这里server后面是1,所以创建的myid里面的内容就是1)(server.1后面的ip地址是要操作的IP地址,就是内容为1的myid文件是在ip为10.0.0.120的主机上创建的,server.2里面的myid内容为2,是在IP为10.0.0.110的主机上创建的)
10.修改配置文件(/etc/profile)
export ZOOKEEPER=/opt/zookeeper-3.4.12 #解压后的路径
export PATH=$ZOOKEEPER/bin:$PATH
11.配置文件生效
命令:source /etc/profile
12.将主节点上的文件内容远程传送到从节点中(Hadoop为从节点的用户名,slave1为从节点的主机名)
命令:scp -r /opt/zookeeper-3.4.12 hadoop@slave1:/opt
13.在从节点上,创建同步骤7相同的文件,路径也相同,同样创建一个文件myid,这个文件内容为2,与对应IP地址的server后面的内容相同(注意这些文件的所有者,所属者都是Hadoop)
14.启动zookeeper
命令:zkServer.sh start
15.查看zookeeper的状态
命令:zkServer.sh status(主节点与从节点的成功会出现以下页面)
16.在启动之后运行zookeeper的简易客户端,其中zkCli.sh是运行简易客户端的命令,10.0.0.120是要连接的主机的ip地址,端口号2181
运行成功会出现以下的字段:(黄色框内容),可能在红线部分的时候,不出现红线下的内容共,点击回车
过程中可能会出现的问题:
启动zookeeper的时候,能启动,查看状态的时候显示it is probably not runing
问题与解决思路:
1.查看日志,日志显示,地址被占用,这时候进入zookeeper的配置文件zoo.cfg中,修改端口号clientPort,记得要全部节点都要记得修改,然后重启
2.可能只是启动了一个节点,全部节点启动之后,在查看
3.去到配置文件中查看写的server.x后面的x与myid中的内容是否一致
使用:
1.通过使用help可以查看帮助命令
2.创建节点:临时节点使用-e,顺序节点使用-s,创建顺序节点的时候,会在节点号后面出现一串数字,临时节点后面不会出现。创建永久节点直接是create /zk-forever 123没有-s与-e(这里面的123为数据内容)
3.临时节点会在客户端会话结束的时候,自动删除(退出quit,再次登陆查看没有上述创建的临时节点)
4.读取相关的命令有ls 命令和get 命令,ls命令可以列出Zookeeper指定节点下的所有子节点,只能查看指定节点下的第一级的所有子节点;get命令可以获取Zookeeper指定节点的数据内容和属性信息。ls2命令同get获取的内容一样
5.创建某个节点使用get 节点路径 可以获得该节点的信息
6.修改节点信息(格式set 路径 要修改的内容)(如下是修改节点zk-temp的内容为456),修改之后dataVersion会发生变化,从之前的0变成1,会随着修改次数的增加而增加
7.删除节点使用delete,格式:delete节点路径
8.监听,watch的使用,在两个节点上打开zookeeper客户端,一个使用watch,如下使用ls /watch监听/下的变化,当在另一个客户端创建临时节点的时候,监听端就会出监听到信息,如下面红框内容