这篇文章一共说了三个方面:Zookeeper分布式部署、 与集群交流shell操作、与集群交流Java API操作
1.Zookeeper分布式部署
搭建在很多台虚拟机上,就像是上一篇文章所说,需要有奇数个服务器才能投票,所以我们用2N+1台服务器来组成,所以我们就用3台就好啦
①下载zookeeper安装包
可以从官网上下载,也可以直接用这个 zookeeper安装包 password:60xn
②上传解压
用xshll传到虚拟机上
下面开始解压(记得把集群启动起来 start-all.sh)输入:tar -zxvf zookeeper-3.4.11.tar.gz -C /export/servers/
③添加并修改配置文件
把文件复制一份改个名,输入:cp zoo_sample.cfg zoo.cfg 之后vim它,修改这些
输入:
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
注意:这个2888和3888分别是通信端口和选举端口
④.配置环境变量(不配也没事,配了方便使用写好的脚本,就像hadoop一样)
在 /export/servers/zookeeper-3.4.11/bin目录下是那些脚本,一会要将这个bin写在环境文件中(找找规律,记一下)最后在重新加载一下环境变量,输入:source /etc/profile
⑤建立myid文件,将数值输入到myid,对应关系是--->里面内容是server.n中的n(例如:server.2里面的内容为2)
⑥把配置好的东西发给hadoop02.03
输入:scp -r /export/servers/zookeeper-3.4.11/ hadoop02:/export/servers/ (02.03都要分发)
之后再把环境变量发过去
输入:scp /export/data hadoop03:/export/data 02也要
⑦修改myid的内容 (记得source /etc/profile一下)
echo "2" > myid echo "3" > myid
⑧重新加载一下配置文件source /etc/profile ,三台都这么操作 之后输入:zkServer.sh start
噔噔噔噔!可以看到zookeeper服务启动成功。QuorumPeerMain进程成功
再查一下集群的状态,谁是老大谁是小弟 输入:
第一台是小弟
第二台是大哥
第三台是小弟
注:启动关闭命令 zkServer.sh start /stop
(如果有啥问题,可以试着看看防火墙!!!)
2.与集群交流shell操作
集群可以用shell进行操作,也就说是命令行控制,通过命令对Zookeeper进行访问和控制
1.查看启动信息 输入:zkCli.sh -sever hadoop01:2181(2128这个端口是在之前配置好的)(注意看最下面那行,咱们已经进去了zookeeper)
2.查看包含内容 输入: ls /
3.输出当前节点数据并且看到更新次数等数据 输入:ls2 /
4.创建临时节点 输入:create -e /test-node-temp testtemp
5.获取指定节点的数据内容以及属性 输入:get /test-node-temp testtemp
6.修改节点内容 例如:修改test-node-temp节点内容为longshisan
7.监听节点变化 输入:get /test-node-temp watch (我看了看实验现象,不知道那里变了,不知道监听了个啥子)
8.删除节点 输入命令: delete /test rmr /test
附录:zookeeper中一共可以用这些命令(quit退出)
3.与集群交流Java API操作
Zookeeper API包含五个包,在org.apache.zookeeper包含Zookeeper类,这个类提供常用的Java API方法
1.新建meven工程,在pom.xml下添加包,和之前基本一样,唯一不一样的地方是多了一个zookeeper依赖(截图和代码我都没有把其他依赖加进去,还有common依赖,hdfs依赖,client依赖,junit测试jar包)
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
</dependency>
2.接下来是new一个包,包里new一个class ,之后在后面配置文件,打印一些东西,
3.创建一个目录
4.创建一个子目录节点
5.取出子目录节点列表
6.修改子目录节点数据
7.创建另外一个子目录节点
8.删除子目录节点
9.删除父目录节点