原创: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
转载于:https://www.cnblogs.com/bdccloudy/p/7665262.html
原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例相关推荐
- CentOS7.0基于hadoop集群安装配置Hive
前言 安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可(需要再有的namenode上安装),可以不在datanode节点的 ...
- 记一次 Centos7.x Hadoop3.x集群安装部署 Pig 0.17.0
基本信息 官网 http://pig.apache.org/ 下载地址 http://www.apache.org/dyn/closer.cgi/pig https://mirror.bit.edu. ...
- Openpbs centos7集群安装配置心得
Openpbs centos7集群安装配置心得 写在前面 准备工作 1.安装虚拟机 2.创建虚拟机集群 SSH免密登陆 网络环境配置 ssh免密登陆 建立NFS共享目录 关闭各节点防火墙和Selinu ...
- Centos7环境下etcd集群的搭建
Centos7环境下etcd集群的搭建一.简介"A highly-available key value store for shared configuration and service ...
- zookeeper集群安装部署
zookeeper集群安装部署 1:规划: 集群建议至少在三台服务器上部署 192.168.1.171 192.168.1.172 192.168.1.173 2:去各 ...
- Zookeeper集群安装Version3.5.1
Zookeeper集群安装,基于版本3.5.1, 使用zookeeper-3.5.1-alpha.tar.gz安装包. 1.安装规划 zookeeper集群模式,安装到如下三台机器 10.43.159 ...
- 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇
使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...
- Hbase完全分布式集群安装配置(Hbase1.0.0,Hadoop2.6.0)
1.安装软件 OS:centos6.5 Hadoop:hadoop2.6.0 Hbase:hbase.1.0.0 JDK: jdk1.7.0_51 集群机器: 192.168.153.130(hado ...
- ZooKeeper-3.3.4集群安装配置
"ZooKeeper-3.3.4集群安装配置": 关键词:zookeeper-3.3.4 集群 安装 配置 zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务, ...
最新文章
- 2012 12 12 (109)闪回操作
- Oracle Events事件
- Shell+Linux命令实现日志分析
- hadoop-1.1.2 在centos环境下的部署
- 【ABAP系列】SAP 面试 ABAPer的一些感想
- 服务器修改地址,服务器修改管理地址
- PyCharm 设置背景图片
- 5月25号GE一面经历
- 转:在ubuntu下将dmg文件转化为iso格式
- Android Q分区存储权限变更及适配
- 百度网盘无需开会员也能享受高速下载通道
- 利用python和百度地图API实现数据地图标注
- redis 实践笔记和源码分析
- 系统性谈谈软件可靠性——第1讲:软件可靠性基础概念
- 以用户体验五要素的思路,如何编写产品需求文档(PRD)
- 行人重识别 论文学习
- 2022京东年货节全民炸年兽活动时间和玩法阶段
- Win11任务栏隐藏显示后怎么重新显示操作教学
- 【书籍篇】统计数字会说谎
- 怎么样用计算机解锁密码忘了,电脑开机密码忘了怎么办_怎样跳过电脑开机密码...
热门文章
- mysql初始化root 密码是多少_Mysql初始化root密码和允许远程访问
- 常用网络故障集锦,收藏备用
- postgres 退出_centos如何退出postges?
- Knative 基于流量的灰度发布和自动弹性实践
- hyperic hq mysql_网络管理工具Hyperic HQ监控MySQL配置
- csgo陀螺仪是什么意思_CSGO:起源2将在五月中旬推出?B5无意间透露出这个消息...
- android开发桌面源码,android launcher 源码 自己开发启动桌面
- 月结 sap_乡村基SAP:领跑中式快餐数字化转型
- 微信小程序支付html标签,微信小程序/支付宝小程序 WxParse解析富文本(html)代码...
- python通过指定网卡发包_Python 使用指定的网卡发送HTTP请求的实例