一、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 使用

  1. package com.ghgj.zkapi;
  2.  
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.List;
  6.  
  7. import org.apache.zookeeper.CreateMode;
  8. import org.apache.zookeeper.KeeperException;
  9. import org.apache.zookeeper.ZooDefs.Ids;
  10. import org.apache.zookeeper.ZooKeeper;
  11. import org.apache.zookeeper.data.Stat;
  12.  
  13. public class ZKAPIDEMO {
  14.  
  15. // 获取zookeeper连接时所需要的服务器连接信息,格式为主机名:端口号
  16. private static final String ConnectString = "hadoop02:2181";
  17.  
  18. // 请求了解的会话超时时长
  19. private static final int SessionTimeout = 5000;
  20.  
  21. public static void main(String[] args) throws Exception {
  22.  
  23. /**
  24. * 获取zookeeper链接, 要求的连接参数至少有三个: ConnectString:服务器的连接信息
  25. * SessionTimeout:请求连接的超时时长 Watch:添加监听器
  26. */
  27. ZooKeeper zk = new ZooKeeper(ConnectString, SessionTimeout, null);
  28.  
  29. // 根据拿到的zk连接去做相应的操作
  30.  
  31. // 查看节点数据
  32. // byte[] data = zk.getData("/ghgj/hadoop", false, null);
  33. // System.out.println(new String(data));
  34.  
  35. // 查看子节点的信息
  36. // String parentNodePath = "/ghgj";
  37. // List<String> childrens = zk.getChildren(parentNodePath, false);
  38. // for(String child : childrens){
  39. // System.out.println(parentNodePath+"/"+child);
  40. // }
  41.  
  42. // 修改节点的数据
  43. // Stat setData = zk.setData("/ghgj/hadoop",
  44. // "hadoopsprakjsdlfkj".getBytes(), -1);
  45. // long mtime = setData.getMtime();
  46. // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  47. // System.out.println(sdf.format(new Date(mtime)));
  48.  
  49. // 添加持久节点znode
  50. String addPathnode = "/spark/node";
  51. String path = zk.create(addPathnode, "node".getBytes(),
  52. Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
  53. System.out.println(path);
  54.  
  55. // 添加短暂型节点
  56. // String addPathnode1 = "/ghgj/hive1";
  57. // String path1 = zk.create(addPathnode1, "hive1".getBytes(),
  58. // Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
  59. // System.out.println(path1);
  60. // Thread.sleep(5000);
  61.  
  62. // 删除一个带有多级子节点的znode
  63. // boolean rmr = rmr("/zk", zk);
  64. // System.out.println(rmr?"删除成功":"删除失败");
  65.  
  66. zk.close();
  67. }
  68.  
  69. public static Stat exists(String path, ZooKeeper zk) throws Exception {
  70. Stat exists = zk.exists("/ghgj/hadoop", false);
  71. if (null != exists) {
  72. System.out.println("该节点/ghgj/hadoop还存在");
  73. return exists;
  74. } else {
  75. System.out.println("该节点/ghgj/hadoop不存在");
  76. return null;
  77. }
  78. }
  79.  
  80. public static boolean rmr(String path, ZooKeeper zk) throws Exception {
  81. // 判断节点存在不存在
  82. Stat stat = exists(path, zk);
  83. // if (stat.getNumChildren() == 0) {
  84. List<String> children = zk.getChildren(path, false);
  85. if (children.size() == 0) {
  86. // 删除节点
  87. zk.delete(path, -1);
  88. } else {
  89. // 要删除这个有子节点的父节点,那么就需要先删除所有子节点,然后再删除该父节点,完成对该节点的级联删除
  90. // 删除有子节点的父节点下的所有子节点
  91. for (String nodeName : children) {
  92. System.out.println(path);
  93. rmr(path + "/" + nodeName, zk);
  94. }
  95. // 删除该父节点
  96. rmr(path, zk);
  97. }
  98. return true;
  99. }
  100. }

  

Zookeeper(二) zookeeper集群搭建 与使用的更多相关文章

  1. zookeeper安装与集群搭建

    此处以centos系统下zookeeper安装为例,详细步骤可参考官网文档:zookeeper教程 一.单节点部署 1.下载zookeeper wget http://mirrors.hust.edu ...

  2. 基于zookeeper的Swarm集群搭建

    简介 Swarm:docker原生的集群管理工具,将一组docker主机作为一个虚拟的docker主机来管理. 对客户端而言,Swarm集群就像是另一台普通的docker主机. Swarm集群中的每台 ...

  3. zookeeper及kafka集群搭建

    zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...

  4. Zookeeper简介与集群搭建【转】

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  5. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

  6. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  7. zookeeper高可用集群搭建

    前提:已经在master01配置好hadoop:在各个slave节点配置好hadoop和zookeeper: (该文是将zookeeper配置在各slave节点上的,其实也可以配置在各master上, ...

  8. HADOOP+SPARK+ZOOKEEPER+HBASE+HIVE集群搭建(转)

    原文地址:https://www.cnblogs.com/hanzhi/articles/8794984.html 目录 引言 目录 一环境选择 1集群机器安装图 2配置说明 3下载地址 二集群的相关 ...

  9. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  10. Zookeeper简介与集群搭建

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

随机推荐

  1. Java构造方法与析构方法实例剖析

    Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...

  2. jmeter逻辑控制器

    刚开始学习,只写几种了解的逻辑控制器 1.简单控制器 只用来组合采样器和其他逻辑控制器,不影响jmeter的运行 2.循环控制器 用来循环执行采样器和其他逻辑控制器,例如一个用户发送特定请求多次,即可 ...

  3. Mac下布置appium环境

    1.下载或者更新Homebrew:homebrew官网 macOS 不可或缺的套件管理器 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githu ...

  4. Java接口获取系统配置信息

    Java获取当前运行系统的配置信息 接口:System.getProperty() 参数 描述 java.version Java运行时环境版本 java.vendor Java运行时环境供应商 ja ...

  5. 论文笔记:DeepFace: Closing the Gap to Human-Level Performance in Face Verification

    2014 CVPR Facebook AI研究院 简单介绍 人脸识别中,通常经过四个步骤,检测,对齐(校正),表示,分类 论文主要阐述了在对齐和表示这两个步骤上提出了新的方法,模型的表现超越了前人的工 ...

  6. Python Pygame (3) 界面显示

    显示模式: 之前使display模块的set_mode()的方法用来指定界面的大小,并返回一个Surface对象. set_mode()的原型如下: display.set_mode(resoluti ...

  7. MOOK学习

    课程选择及其理由 课程:c++程序设计 教师:魏英 学校:西北工业大学 总共:48讲 选择理由:我其实之前找了好几个,但由于小白,思考了下(迷茫,感觉好像都不错),然后看了一下大家都选择了西北工业大学 ...

  8. 60行代码:Javascript 写的俄罗斯方块游戏

    哈哈这个实在是有点意思 备受打击当初用java各种类写的都要几百行啦 先看效果图: 游戏结束图: javascript实现源码: [javascript] view plaincopyprint? & ...

  9. <浪潮之巅>读书笔记

    <浪潮之巅>这本书通过介绍AT&T.IBM.微软.苹果.google等IT公司的发展历史,揭示科技工业的胜败规律,说明这些公司是如何在每一次科技革命浪潮到来时站在浪尖,实现跨越式发 ...

  10. C#高级编程 (第六版) 学习 第一章:.Net体系结构

    第一章 .Net体系结构 1,公共语言运行库(Common Language Runtime, CLR) .Net Framework的核心是其运行库的执行环境,称为公共语言运行库,或.Net运行库. ...