ZooKeeper分布式协调服务
环境前提准备
- 虚拟机安装
内容链接:https://blog.youkuaiyun.com/qq_47433566/article/details/114821112 - Hadoop集群
内容链接:https://blog.youkuaiyun.com/qq_47433566/article/details/114806444
首先介绍一下,我所配的虚拟机为三台hadoop分布式集群,第一台主机名为Cat
,第二台为Dog
,第三台为Pig
。
ZooKeeper的下载安装
下载地址:http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.7.0.tar.gz
将zookeeper的安装包安装到/export/software
中,然后进行解压解压到/export/servers
中,进行更改名,具体步骤如下。
> cd /export/software
> rz //我们也可以Xftp拖拉进去
> tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz -C /export/servers //解压
> cd /export/servers
> ls
> mv apache-zookeeper-3.5.8-bin zookeeper //改名
ZooKeeper的相关配置
修改ZooKeeper的配置文件
输入命令
> cd /export/servers/zookeeper/conf //进入到zookeeper的conf文件夹中
> cp zoo_sample.cfg zoo.cfg //复制并修改名字
修改配置文件zoo.cfg
,分别设置dataDir
目录,配置服务器编号与主机名映射关系,设置与主机连接的心跳端口和选举端口。
> vi zoo.cfg
配置内容:
dataDir=/export/data/zookeeper/zkdata//设置数据文件目录+数据持久化路径
server.1=Cat:2888:3888
server.2=Dog:2888:3888
server.3=Pig:2888:3888//配置ZooKeeper集群的服务编号已经应对的主机名、选举端口号和通信端口号
创建myid文件
根据zoo.cfg
中设置的dataDir
目录,创建zkdata
文件夹
先要cd到zookeeper中conf文件夹下
输入命令
> mkdir -p /export/data/zookeeper/zkdata //创建
> cd /export/data/zookeeper/zkdata
> echo 1 > myid
配置环境变量
vi /etc/profile
添加内容:
export ZK_HOME=/export/servers/zookeeper //zookeeper对应的路径
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
分发ZooKeeper相关文件至其他虚拟机
将ZooKeeper安装目录分发至其他虚拟机
输入命令:
> scp -r /export/servers/zookeeper Dog:/export/servers
> scp -r /export/servers/zookeeper Pig:/export/servers
将myid
文件分发至其他虚拟机
输入命令:
> scp -r /export/data/zookeeper Dog:/export/data
> scp -r /export/data/zookeeper Pig:/export/data
修改其他两台机子里myid
的内容
> cd /export/data/zookeeper/zkdata //Dog和Pig都要切换到这个目录
> echo 2 > myid //Dog上修改(第二台虚拟机)
> echo 3 > myid //Pig上修改(第三台虚拟机)
> cat myid
第二台虚拟机
第三台虚拟机
将profile
文件分发至其他虚拟机
> scp /etc/profile Dog:/etc/profile
> scp /etc/profile Pig:/etc/profile
环境变量生效
在三台虚拟机上刷新profile
,使环境变量生效
输入命令:source /etc/profile
ZooKeeper服务的启动和关闭
输入命令:
> zkServer.sh start //依次启动ZooKeeper,三台都要启动
> zkServer.sh status //查看节点的角色
> zkServer.sh stop //依次关闭
> ZooKeeper zkServer.sh start-foreground //可以查看启动的信息
ZooKeeper的Shell操作
通过Shell命令操作ZooKeeper
输入命令:
> zkServer.sh start //依次启动ZooKeeper,三台都要启动
> zkServer.sh status //查看节点的角色
> zkCli.sh -server localhost:2181 //连接Zookeeper服务
显示所有操作命令
在客户端输入命令:help
查看当前ZooKeeper中所包含的内容
在客户端输入:ls /
根目录下有一个自带的zookeeper子节点,它来保存ZooKeeper的配置管理信息,不要轻易删除。
查看当前节点数据
在客户端输入:ls2 /
创建节点
语法格式:create [-s] [-e] path data ac1
命令:
> create -s /testnode test //创建序列化永久节点
> create -e /testnode-temp testtemp //创建临时节点
> create /testnode-p testp //创建永久节点
获取节点
语法格式:
ls path [watch]
get path [watch] //可获取节点数据内容和属性信息
ls2 path [watch]
> get -s -w /
> get -s -w /testnode-temp
修改节点
语法格式:set path data [version]
> set /testnode-temp 123
> get -s -w /testnode-temp
监听节点
> get /testnode-temp watch //客户端向服务端注册
> Watch set /testnode-temp watch //服务端发生事件触发Watch
删除节点
语法格式:
delete path [version] //普通删除命令
rmr path [version] //递归删除命令
> delete /testnode-temp
> rmr /testnode-temp0000000000
到这儿就结束了,哈哈哈哈感谢大家的支持!!!!!!