zookeeper 的安装配置及简单使用


===> Zookeeper是什么? => ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。=>ZooKeeper包含一个简单的原语集,提供Java和C的接口。=>ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3srcrecipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本
===> Zookeeper应用场景(功能):=>它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。=>ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
===> Zookeeper体系结构

===> Zookeeper工作原理:=>Zookeeper
的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。=>Zab协议有两种模式: 恢复模式(选主)广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和
leader的状态同步以后,恢复模式就结束了。 (★)状态同步保证了leader和Server具有相同的系统状态

=>为了保证事务的顺序一致性,zookeeper采用了递增的事务id号(zxid)来标识事务。所有的提议(proposal)都在被提出的时候加上了zxid。实现中zxid是一个64位的数字,它高32位是epoch用来标识leader关系是否改变,每次一个leader被选出来,它都会有一个新的epoch,标识当前属于那个leader的统治时期。低32位用于递增计数。
(★)对于客户端来说,ZooKeeper是一个整体(ensemble),连接到ZooKeeper集群实际上感觉在独享整个集群的服务,so,你可以在任何一个结点上建立到服务集群的连接

===> Zookeeper安装 =>搭建ZooKeeper的集群环境1、三台:bigdata12 bigdata13 bigdata14 时间同步 2、在bigdata12上进行安装 (*) 解压 tar -zxvf zookeeper-3.4.10.tar. 香港云主机gz -C ~/training/ (*) 设置环境变量:每台机器上ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10export ZOOKEEPER_HOME
PATH=$ZOOKEEPER_HOME/bin:$PATHexport PATH (*)核心的配置文件: conf/zoo.cfgmkdir /root/training/zookeeper-3.4.10/tmp编辑 zoo.cfgdataDir=/root/training/zookeeper-3.4.10/tmp
server.1=bigdata12:2888:3888server.2=bigdata13:2888:3888server.3=bigdata14:2888:3888在/root/training/zookeeper-3.4.10/tmp目录创建文件: myid输入 13、把bigdata12的ZK复制到其他的节点 scp -r zookeeper-3.4.10/ root@bigdata13:/root/training scp -r zookeeper-3.4.10/ root@bigdata14:/root/training 4、修改bigdata13和bigdata14上的myid文件5、在每台机器上,启动ZK: zkServer.sh start
===>配置文件
=>zookeeper-3.3.3/conf文件夹下面(可以把默认的zoosample.cfg复制一份到zoo.cfg),配置文件zoo.cfg需要在每台服务器中都要编写,以下是一个配置文件的样本:
# Filename zoo.cfg
tickTime=2000
dataDir=/home/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=202.115.36.251:2888:3888
server.2=202.115.36.241:2888:3888
server.3=202.115.36.242:2888:3888
initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒
server.A=B:C:DA 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
=>创建myid文件除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就只有一个数据就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。这个myid的值要和配置文件中的server.x=ip:port:port中的x一致。echo 1 > myid

===> Zookeeper操作=> 查看zookeeper 的状态: zkServer.sh status
=>通过 zookeeper客户端连接:zkCli.sh -server 192.168.10.221:2181
=>查看znode节点:
ls /
=>创建znode节点(数据):
create /test “hello”
=> 获取znode节点数据:
get /test
=>修改znode节点数据:set /test “word”
=>删除znode节点:delete /test

===>清除zk状态当在zk上已经做了很多事情,配置已经比较杂乱,现在想重新初始化一下,也就是把所有状态删除,步骤是:=>关闭所有zk节点,用zkServer.sh status查看是否关闭=>删除zoo.cfg定义的数据文件夹下的所有文件,除了myid文件外=>启动zk节点现在配置就重置了
===>常见问题在用zkCli.sh启动客户端时,Will not attempt to authenticate using SASL (无法定位登录配置)这是由于没有启用用户验证导致的,不影响使用,但影响安全性。SASL 即:Simple Authentication and Security Layer

相关推荐: 笔记本电脑如何清除多余的桌面右键菜单

小编给大家分享一下笔记本电脑如何清除多余的桌面右键菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、在键盘“WIN+R”键同时操作下,启动运行框,在框内输入“reg 香港云主机edit”,打开深度系统的注册表编辑器。2、为防止后面操作错误…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/24 19:12
Next 07/24 19:13

相关推荐