博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1、zookeeper入门
阅读量:5219 次
发布时间:2019-06-14

本文共 2609 字,大约阅读时间需要 8 分钟。

一、什么是Zookeeper

Zookeeper是Google的Chubby一个开源的实现,是一个开源的,为分布式提供协调服务的Apache项目;它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等;Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经存在Zookeeper上注册的那些观察者做出相应的反应;Zookeeper通常等于是文件系统加通知机制;

 

二、为什么使用Zookeeper

» 大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)» 目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制» 协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器» ZooKeeper:提供通用的分布式锁服务,用以协调分布式应用    • Keepalived监控节点不好管理    • Keepalive 采用优先级监控        • 没有协同工作        • 功能单一    • Keepalive可扩展性差

 

三、Zookeeper优点

 

四、Zookeeper的安装和配置

以三节点为例,先配置一台,然后再分发:

1、准备、解压安装包

tar zxf zookeeper-3.4.5.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.5/ /usr/local/zookeeper

2、创建zk data目录

mkdir /usr/local/zookeeper/data

3、编辑配置文件

mv zoo_sample.cfg zoo.cfg[root@spark1 conf]# vim zoo.cfg tickTime=2000initLimit=5syncLimit=2dataDir=/usr/local/zookeeper/dataclientPort=2181server.0=spark1:2888:3888    server.1=spark2:2888:3888server.2=spark3:2888:3888##参数解释• tickTime:发送心跳的间隔时间,单位:毫秒• dataDir:zookeeper保存数据的目录。• clientPort:客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。• initLimit: 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒• syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒• server.A=B:C:D:其 中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号

 

4、创建myid文件,设置zk节点标识

在主机1数据目录中,创建一个myid文件,并写入一个数字:0[root@spark1 data]# vim myid0

 

5、分发

##用scp命令,将zookeeper安装目录,传输到另外两台主机上;[root@spark1 local]# scp -r /usr/local/zookeeper spark2:/usr/local/[root@spark1 local]# scp -r /usr/local/zookeeper spark3:/usr/local/分发完后,唯一的区别是spark2和spark3的标识号分别设置为1和2         #vim /usr/local/zookeeper/data/myid

 

6、启动

1、分别在三台机器上执行:zkServer.sh start2、检查ZooKeeper状态:zkServer.sh status
3、jps

 

7、client连接

启动客户端连接到服务器:    $>zkCli.sh -server hostname:2181        //进入zk命令行    $zk]help                                //查看帮助    $zk]quit                                //退出    $zk]create /a tom                       //创建一个数据节点,并赋值数据    $zk]get /a                              //查看数据    $zk]ls /                                //列出节点    $zk]set /a tom                          //设置数据    $zk]delete /a                           //删除一个节点    $zk]rmr /a                              //递归删除所有节点。

转载于:https://www.cnblogs.com/weiyiming007/p/11389645.html

你可能感兴趣的文章
吉首大学校赛 K 白山茶与红玫瑰 (线段树区间操作)
查看>>
eclipse cdt运行c程序报错“launch failed,binary not found”
查看>>
Unity3d fbx纹理不显示 原因
查看>>
修改系统默认的NSButton的按下变灰
查看>>
rsync
查看>>
c# 压缩文件
查看>>
H5WebSocket消息推送
查看>>
Linux 实现校园网认证
查看>>
mysql配置
查看>>
T-SQL之触发器
查看>>
动态规划 -- “最”系列题目
查看>>
zoj 3349 dp + 线段树优化
查看>>
排序算法(六)快速排序
查看>>
apache 配置 Expire/Cache-Control 头
查看>>
Shell3
查看>>
STK卫星工具箱下载
查看>>
【转载】【贪心】各种覆盖问题
查看>>
Class path & Path
查看>>
接口测试入门(4)--接口自动化测试框架 / list和map用法 / 随机选取新闻 (随机数生成) / 接口相关id映射...
查看>>
Entity Framework 连接 mysql 。(code first模式)
查看>>