centos7.1下 ZooKeeper 集群安装配置+Python实战范例



下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz



解压: tar zxvf zookeeper-3.4.9.tar.gz -C /opt/



改名:cd /opt/ && mv zookeeper-3.4.9 zookeeper && cd zookeeper 



建立 data目录 

mkdir data



分布式模式配置

ZooKeeper集群一般被称为ZooKeeper ensemble,或者 quorum.



2.1 准备5台机器

假设有五台机器,hostname和ip对应关系是: 

192.168.48.13 hzmaster1

192.168.48.17 hzmaster2

192.168.48.16 hzslave1

192.168.48.5 hzslave2

192.168.48.12 hzslave3



ZooKeeper不存在明显的master/slave关系,各个节点都是服务器,leader挂了,会立马从follower中选举一个出来作为leader.

由于没有主从关系,也不用配置SSH无密码登录了,各个zk服务器是自己启动的,互相之间通过TCP端口来交换数据。



2.2 修改配置文件/opt/zookeeper/conf/zoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/opt/zookeeper/data

clientPort=2181

server.0=192.168.48.13:2888:3888

server.1=192.168.48.17:2888:3888

server.2=192.168.48.16:2888:3888

server.3=192.168.48.5:2888:3888

server.4=192.168.48.12:2888:3888



我一般把服务器程序,即需要启动daemon进程的程序,放在单独的用户里安装;且用户的数据,放在local/var下面,所以我的dataDir是/home/zookeeper/local/var/zookeeper。



2.3 myid文件

要在每台机器的dataDir下,新建一个myid文件,里面存放一个数字,用来标识当前主机。

hzmaster1:$ echo "0" >>/opt/zookeeper/data/myid

hzmaster2:$ echo "1" >>/opt/zookeeper/data/myid

hzslave1:$ echo "2" >>/opt/zookeeper/data/myid

hzslave2:$ echo "3" >>/opt/zookeeper/data/myid

hzslave3:$ echo "4" >>/opt/zookeeper/data/myid



2.4 启动每台机器

hzmaster1:$ /opt/zookeeper/bin/zkServer.sh start

hzmaster2:$ /opt/zookeeper/bin/zkServer.sh start

hzslave1:$ /opt/zookeeper/bin/zkServer.sh start

hzslave2:$ /opt/zookeeper/bin/zkServer.sh start

hzslave3:$ /opt/zookeeper/bin/zkServer.sh start

启动顺序无关



2.5 查看状态

$ /opt/zookeeper/bin/zkServer.sh status

3 使用java客户端连接ZooKeeper集群

找一台机器,解压zookeeper压缩包,不用配置,就可以使用Java客户端连接ZooKeeper集群中的任意一台服务器了。



$ /opt/zookeeper/bin/zkCli.sh -server hzmaster2



常用命令:

1. 启动ZK服务:       sh bin/zkServer.sh start

2. 查看ZK服务状态: sh bin/zkServer.sh status

3. 停止ZK服务:       sh bin/zkServer.sh stop

4. 重启ZK服务:       sh bin/zkServer.sh restart



客户端工具

./zkCli.sh

ZooKeeper命令行工具类似于Linux的shell环境,不过功能肯定不及shell啦,但是使用它我们可以简单的对ZooKeeper进行访问,数据创建,数据修改等操作.  使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。

命令行工具的一些简单操作如下:

1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容

2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据

3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串

4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串

5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置

6. 删除文件: delete /zk 将刚才创建的 znode 删除

7. 退出客户端: quit

8. 帮助命令: help



删除要逐层删除才可以,子节点下如果还有内容就不能删除!



一段python代码:

#coding=utf-8

__author__ = 'huangzhi'



import kazoo

import logging

from time import sleep

from kazoo.client import KazooClient

import time

import logging

logging.basicConfig()





zk = KazooClient(hosts='192.168.51.19:2181,192.168.51.85:2181,192.168.51.196:2181,192.168.51.225:2181,192.168.51.227:2181')

# zk = KazooClient(hosts='192.168.51.19:2181')

zk.start(timeout=2)

print (zk.state)



def myWatch(handler):

    # 保证可以被重复监听,值发生变化后会立即触发

    value = zk.get('/test', myWatch)

    print(value[0].decode())



print(zk.hosts)

"""An ephemeral node will be automatically removed by ZooKeeper

        when the session associated with the creation of the node

        expires.

"""

# zk.create("/test", value=b"a test value", ephemeral=True) #退出后自动删除

# zk.create("/test", value=b"a test value", ephemeral=False) #退出后不自动删除

# zk.set('test', b"hello I'm")



value = zk.get('/test', myWatch)

print(value[0].decode())

for v in value:

    print(v)

# print (zk.state) #CONNECTED



# print (zk.randomize_hosts)

# Ensure a path, create if necessary



# zk.ensure_path("/test/failure_detection")

#

# # Create a node with data

# zk.create("/test/failure_detection/worker", value=b"a test value", ephemeral=True)



while True:

    # print ("I am alive!")

    time.sleep(1)



zk.stop()



python3.6下运行完美,收工!任何疑问请联系我本人 QQ:99923309

原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例的更多相关文章

  1. hbase和ZooKeeper集群安装配置

    一:ZooKeeper集群安装配置 1:解压zookeeper-3.3.2.tar.gz并重命名为zookeeper. 2:进入~/zookeeper/conf目录: 拷贝zoo_sample.cfg ...

  2. centos7下zookeeper集群安装部署

    应用场景:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件. 它是一个为分布式应用提供一致性服务的软 ...

  3. windows下zookeeper集群安装

    windows下zookeeper单机版安装,见:https://www.cnblogs.com/lbky/p/9867899.html 一:zookeeper节点为什么是奇数个? 单机模式的zk进程 ...

  4. Zookeeper 集群安装配置,超详细,速度收藏!

    今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...

  5. Zookeeper 集群安装配置

    今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...

  6. 8.3.ZooKeeper集群安装配置

    1.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式:Zookeeper只运行在一台服务器上,适合测试环境: 伪集群模式:就是在一台物理机上 ...

  7. zookeeper集群安装配置

    http://www.firefoxbug.net/?p=2565

  8. 1、zookeeper集群安装

    前提准备3台centos7.0虚拟机 c7003:192.168.70.103 c7004:192.168.70.104 c7005:192.168.70.105 并在三台虚拟机上配置hosts为 1 ...

  9. Linux下zookeeper集群搭建

    Linux下zookeeper集群搭建 部署前准备 下载zookeeper的安装包 http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper ...

随机推荐

  1. Android 一些注意

    半年没碰android,想给一个按钮写个click,硬是想不起来怎么搞,哎! 1.编码问题调整 2.引用框架问题 3.界面设计无法显示问题,需要调整设计界面的API Level 4.任意输入自动提示 ...

  2. redis集群种类(转)

    原文:http://blog.csdn.net/c295477887/article/details/52487621 关于redis主从.哨兵.集群的介绍网上很多,这里就不赘述了. 一.主从 通过持 ...

  3. BZOJ 1001 狼抓兔子 (最小割转化成最短路)

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 27715  Solved: 7134[Submit][ ...

  4. LCD相关基础知识

    1.什么是LCD? (1)LCD(Liquid Crystal Display)俗称液晶.液晶是一种材料,液晶这种材料具有一种特点:可以在电信号的驱动下液晶分子进行旋转,旋转时会影响透光性, 因此我们 ...

  5. Freedom DownTime

    Storyline Computer hackers are being portrayed as the newest brand of terrorists. This is a story of ...

  6. Altera FPGA 开启引脚片上上拉电阻功能

    本博文以矩阵键盘实验为例,介绍了如何开启FPGA管脚的片上上拉电阻. Cyclone IV E FPGA的通用输入输出管脚都支持内部弱上拉电阻,但是时钟输入脚不支持.所以,当需要上拉电阻的信号(如本例 ...

  7. 关于数组以及c#学习问题

    第二次作业我没注意看群通告,看到都3月8号,开始着手想用c#试着写写,才发现一些问题. a.鞠老的要求中必须原数据需要csv文件,csv文件不是太了解,网上简单查阅了一下------csv意思是逗号分 ...

  8. vs2008快捷键极其技巧

    vs2008快捷键极其技巧 1. 工具: Microsoft Visual Studio 2008 Version 9.0.21022.8 RTM Microsoft .NET Framework V ...

  9. MSP430 G2553 基本时钟模块+ (Basic Clock Module+)

    一.时钟源 MSP430的Basic Clock Module+支持的时钟源有: DCOCLK:内部数字控制振荡器,Internal digitally contrlled oscillator.所有 ...

  10. 【转】敏捷开发之Scrum扫盲篇

    现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中 ...