一、zookeeper集群搭建

鉴于 zookeeper 本身的特点,服务器集群的节点数推荐设置为奇数台。我这里我规划为三台, 为别为 hadoop01,hadoop02,hadoop03 
   1、下载地址: http://mirrors.hust.edu.cn/apache/zookeeper/
        版本号: zookeeper-3.4.7.tar.gz

2、解压安装到自己的目录

tar -zxvf zookeeper-3.4.7.tar.gz -C apps/

3、修改配置文件

cd conf/
    mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

二、启动软件,并验证安装是否成功

三、zookeeper集群使用

1、cli使用

首先,我们可以是用命令 bin/zkCli.sh 进入 zookeeper 的命令行客户端,这种是直接连接本机 的 zookeeper 服务器,还有一种方式,可以连接其他的 zookeeper 服务器,只需要我们在命 令后面接一个参数-server 就可以了。 例如: zkCli.sh –server hadoop01:2181

进入命令行之后,键入 help 可以查看简易的命令帮助文档,

znode 数据信息字段解释

2、zookeeper  Java API 使用

package com.ghgj.zkapi;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat; public class ZKAPIDEMO { // 获取zookeeper连接时所需要的服务器连接信息,格式为主机名:端口号
private static final String ConnectString = "hadoop02:2181"; // 请求了解的会话超时时长
private static final int SessionTimeout = 5000; public static void main(String[] args) throws Exception { /**
* 获取zookeeper链接, 要求的连接参数至少有三个: ConnectString:服务器的连接信息
* SessionTimeout:请求连接的超时时长 Watch:添加监听器
*/
ZooKeeper zk = new ZooKeeper(ConnectString, SessionTimeout, null); // 根据拿到的zk连接去做相应的操作 // 查看节点数据
// byte[] data = zk.getData("/ghgj/hadoop", false, null);
// System.out.println(new String(data)); // 查看子节点的信息
// String parentNodePath = "/ghgj";
// List<String> childrens = zk.getChildren(parentNodePath, false);
// for(String child : childrens){
// System.out.println(parentNodePath+"/"+child);
// } // 修改节点的数据
// Stat setData = zk.setData("/ghgj/hadoop",
// "hadoopsprakjsdlfkj".getBytes(), -1);
// long mtime = setData.getMtime();
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// System.out.println(sdf.format(new Date(mtime))); // 添加持久节点znode
String addPathnode = "/spark/node";
String path = zk.create(addPathnode, "node".getBytes(),
Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
System.out.println(path); // 添加短暂型节点
// String addPathnode1 = "/ghgj/hive1";
// String path1 = zk.create(addPathnode1, "hive1".getBytes(),
// Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
// System.out.println(path1);
// Thread.sleep(5000); // 删除一个带有多级子节点的znode
// boolean rmr = rmr("/zk", zk);
// System.out.println(rmr?"删除成功":"删除失败"); zk.close();
} public static Stat exists(String path, ZooKeeper zk) throws Exception {
Stat exists = zk.exists("/ghgj/hadoop", false);
if (null != exists) {
System.out.println("该节点/ghgj/hadoop还存在");
return exists;
} else {
System.out.println("该节点/ghgj/hadoop不存在");
return null;
}
} public static boolean rmr(String path, ZooKeeper zk) throws Exception {
// 判断节点存在不存在
Stat stat = exists(path, zk);
// if (stat.getNumChildren() == 0) {
List<String> children = zk.getChildren(path, false);
if (children.size() == 0) {
// 删除节点
zk.delete(path, -1);
} else {
// 要删除这个有子节点的父节点,那么就需要先删除所有子节点,然后再删除该父节点,完成对该节点的级联删除
// 删除有子节点的父节点下的所有子节点
for (String nodeName : children) {
System.out.println(path);
rmr(path + "/" + nodeName, zk);
}
// 删除该父节点
rmr(path, zk);
}
return true;
}
}

  

最新文章

  1. zeromq系列
  2. linux 查找文件与进程常用命令
  3. Centos普通用户提权至ROOT
  4. (一)GATT Profile和GAP 简介(目前所有的BLE应用都基于GATT,所以也要了解是怎么一回事)-转发
  5. Sublime 保存时自动转换tab成空格
  6. javascript中onclick事件能调用多个方法吗
  7. cannot restore segment prot after reloc: Permission denied
  8. Selenium用户扩展
  9. C++与Lua交互(三)
  10. 安装 vs2005, vs2008 报错
  11. 为什么选择Premium Fabric Shanghai
  12. ng-validate
  13. mini-httpd源码分析-port.h
  14. bzoj 3697
  15. python小程序--Three(三级菜单)
  16. swust oj 956
  17. 外网teamview连接不上服务器teamview的错误: 一直显示正在连接,正在初始化显示参数的
  18. 对象的get set方法
  19. 解决:Android 8.0检测不到当前的activity
  20. 第153天:关于HTML标签嵌套的问题详解

热门文章

  1. MySQL数据库之安装,基本操作
  2. Qt-QML-Canvas写个小小的闹钟
  3. HDU-1864:最大报销额(浮点数01背包)
  4. java获取IP地址
  5. gets函数的完美替代
  6. Fulfilling Work: The Shippers More entrepreneurs hire &#39;fulfillment&#39; outfits to store and ship their products
  7. Python:默认参数
  8. 欢迎来怼—第三次Scrum会议
  9. Traffic Steering for Service Function Chaining
  10. bzoj2820-GCD