Zookeeper(二) zookeeper集群搭建 与使用
一、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;
}
}
Zookeeper(二) zookeeper集群搭建 与使用的更多相关文章
- zookeeper安装与集群搭建
此处以centos系统下zookeeper安装为例,详细步骤可参考官网文档:zookeeper教程 一.单节点部署 1.下载zookeeper wget http://mirrors.hust.edu ...
- 基于zookeeper的Swarm集群搭建
简介 Swarm:docker原生的集群管理工具,将一组docker主机作为一个虚拟的docker主机来管理. 对客户端而言,Swarm集群就像是另一台普通的docker主机. Swarm集群中的每台 ...
- zookeeper及kafka集群搭建
zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...
- Zookeeper简介与集群搭建【转】
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- 【运维技术】Zookeeper单机以及集群搭建教程
Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...
- 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解
引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...
- zookeeper高可用集群搭建
前提:已经在master01配置好hadoop:在各个slave节点配置好hadoop和zookeeper: (该文是将zookeeper配置在各slave节点上的,其实也可以配置在各master上, ...
- HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)
原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...
- 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
- Zookeeper简介与集群搭建
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
随机推荐
- Google Chrome插件分享
前言 浏览器是大家日常使用最多的工具之一,对于程序员来说,Google Chrome浏览器当然是大家优选的最爱之一.面对Chrome丰富的插件真的是爱不释手,如何把自己的Chrome调教成自己心仪的样 ...
- day03 作业 and 周末作业
请输出 name 变量对应的值中 "e" 所在索引位置? # name = "leX leNb"# num = 0# while num < len(na ...
- hadoop之Shuffle和Sort
MapRduce保证reducer的输入是按照key进行排过序的,原因和归并排序有关,在reducer接收到不同的mapper输出的有序数据后,需要再次进行排序,然后是分组排序,如果mapper输出的 ...
- mysql group by 取第一条
select * from table where id in (select max(id) from table group by sku) 说明:id是自增序列,sku是表中的一个字段
- 重构:越来越长的 switch ... case 和 if ... else if ... else
在代码中,时常有就一类型码(Type Code)而展开的如 switch ... case 或 if ... else if ... else 的条件表达式.随着项目业务逻辑的增加及代码经年累月的修改 ...
- Android开发设计 实验报告
20162315 Android开发设计 实验报告 实验内容 1.安装 Android Stuidio,完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学 ...
- 03 JAVA IO
java.io包中定义了多个流类型来实现输入输出功能,以不同的角度进行分类: 按数据流的方向不同可以分为输入流和输出流 按处理数据单位不通可以分为字节流和字符流 按照功能不同可以分为节点流和处理流 所 ...
- CS小分队第二阶段冲刺站立会议(5月30日)
昨日成果:解决了前天遗留的问题,实现了主界面对于电脑上应用的添加和删除 遇到问题:添加和删除按钮时候,按钮位置图像与北京图片冲突,会出现闪动现象. 删除是通过右键单击出现菜单,其中有删除的选项,但是这 ...
- 2018软工实践—Alpha冲刺(4)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 协助前后端接口的开发 测试项目运行的服务器环 ...
- 软工1816 · BETA 版冲刺前准备
任务博客 组长博客 总的来讲Alpha阶段我们计划中的工作是如期完成的.不过由于这样那样的原因,前后端各个任务完成度不算非常高,距离完成一个真正好用.完美的软件还有所差距. 过去存在的问题 测试工作未 ...