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是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
随机推荐
- 3星|《十大全球CEO亲授企业高速成长的关键战略》:作为CEO,我也非常坦率地表明过家庭优先于工作
十大全球CEO亲授 企业高速成长的关键战略(<哈佛商业评论>增刊) <哈佛商业评论>上的10来篇文章合集.大部分都看过,除了一篇中信的访谈,其他大部分是美国的有点旧的案例. 总 ...
- spring第一章
spring第一章 一.概述 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的 ...
- python sys模块使用详情
python常用模块目录 sys模块提供了一系列有关Python运行环境的变量和函数.1.sys.argv可以用sys.argv获取当前正在执行的命令行参数的参数列表(list).变量解释sys.ar ...
- postman的巨坑 之 cookie
问题描述:一个后端接口,该接口需要校验登录态,登录态通过cookie中的一个传参k判断.在保证登录的前提下,调用机器A上的接口一直报“用户未登录”,调机器B上就没问题,于是开始排查问题. 解决过程: ...
- RIGHT-BICEP测试第二次程序
根据Right-BICEP单元测试的方法我对我写的第二次程序进行了测试: 测试一:测试能否控制使用乘除 测试二:测试是否能加括号 测试三:是否可以控制题目输出数量 测试四:能否控制输出方式,选择文件输 ...
- 软工1816 · 第八次作业(课堂实战)- 项目UML设计(团队)
本次作业博客 团队信息 队名:起床一起肝活队 原组长: 白晨曦(101) 原组员: 李麒 (123) 陈德斌(104) 何裕捷(214) 黄培鑫(217) 王焕仁(233) 林志华(128) 乐忠豪( ...
- IT小小鸟读后感言
有感 读了我是一只IT小小鸟之后, 我发现上大学得靠自己自学,确定自己的目标和方向,多去参与实验和自己多锻炼编写程序.我现在大一,还有很多时间来让自己变得更好,虽然要补考两门课程,但是还是不要失去信心 ...
- Swift-switch使用注意点
1.swift后面的()可以省略 2.case后面的额break可以省略 3.如果想产生case穿透使用fallthrough 4.case后面可以判断多个条件","分割 5.sw ...
- CentOS7实现RabbitMQ高可用集群
CentOS安装RabbitMQ集群 1.有3台已安装RabbitMQ的机器 192.168.38.133 rabbitmq1 192.168.38.137 rabbitmq2 192.168.38. ...
- Week2-作业1 -阅读《构建之法》
第一章 在阅读第1.2.2节时,感受最深,记得开学初有老师就给我们分析过计算机专业和我们专业的区别,当时是给我们讲的是计算机科学注重的是理论,偏向于硬件方面,而软件工程则注重实践,偏向于软件方面.然很 ...