ZooKeeper初探之安装和配置
1. ZooKeeper简介
Zookeeper是Hadoop下的一个子项目,它是一个针对大型分布式系统的可靠的协调系统,提供的功能包括配置维护,名字服务,分布式同步,组服务等,Zookeeper是可以集群复制的,集群间通过Zab(Zookeeper Atomic Broadcast)协议来保存数据的一致性。该协议看起来是Paxos协议的某种变形,该协议包括两个阶段:leader election阶段和Atomic broadcas阶段。集群中选举出一个leader,其它的机器则称为follwer。当leader崩溃或者leader失去大多数的follower时,需要重新选举出一个新的leader,让所有的服务器恢复到一个正确的状态,当leader被选举出来,且大多数服务器完成了和leader的状态同步后,leader election的过程就结束了,将进入Atomic broadcas的过程。
Zookeeper的核心其实类似一个精简的文件系统,提供一些简单的操作和一些附加的抽象(例如znode的排序与watch,并且集群的部署方式使其具有较高的可靠性),Zookeeper的协作过程简化了松散耦合系统之间的交互,即使参与者彼此不自动对方的存在,页你呢挂钩相互发现并且完成交互。
2. ZooKeeper环境搭建
(1)安装JDK
由于Zookeeper是基于Java开发的
下载jre-7u79-linux-x64-rpm 下载地址
安装过程参考:https://blog.csdn.net/abselute/article/details/70039204?locationNum=8&fps=1
(2)下载zookeeper-3.4.5.tar.gz 下载地址
整个安装过程参考:https://www.cnblogs.com/biehongli/p/7650570.html
(3)创建配置文件及配置说明
我个人习惯将Zookeeper安装在/usr/local目录下
cd /usr/local/zookeeper-3.4.5/conf
mv zoo_sample.cpg zoo_cfg
vim zoo_cfg
tickTime= #Zookeeper服务器心跳时间,单位为ms
initLimit= #投票选举新Leader的初始化时间
syncLimit= #leader与follower心跳检测最大容忍时间,相应超过syncLimit*tickTime,leader认为follwer死掉,从服务器列表中删除
clientPor=
dataDir=/usr/local/zookeeper-3.4./data
dataLogDir=/usr/local/zookeeper-3.4./log
(4)配置myid
echo 1 > data/myid
cat data/myid
(5)启动ZooKeeper
cd /usr/local/zookeeper-3.4.5/bin
./zkServer.sh start
(6)总结配置过程中的种种问题
初次配置测试,遇到了很多问题,总结下需要特别注意的点:
A. 关闭防火墙(一定一定),不然会遇到无法链接主机的系列问题
解决rhel7防护墙关闭问题:
rhel7或centos7或Fedora中防火墙由firewalld来管理,可以还原传统的管理方式:
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl stop iptables
systemctl enable iptables
B. 设置数据目录data时需要生成myid文件,并写入id,该id对应zoo_cfg中的server.id,必须一一对应,server.id=ip:port:port仔细仔细再仔细
C. 注意查看zookeeper/bin目录下的日志文件zookeeper.out,会帮助我们确定问题所在
d. 实现ssh远程控制,参考之前的博客:https://www.cnblogs.com/xiaobingqianrui/p/9369722.html
e.配置脚本,同时启动多台服务器
f. 每台服务器的系统时间必须一样
3. 测试
(1)链接测试


(2)同步测试:创建节点和获取节点值

服务器192.168.1.20同步测试

更详细测试请参考:https://blog.csdn.net/fenglongmiao/article/details/79269772
4. 参考博客
(1)http://www.cnblogs.com/wuxl360/p/5817471.html#3950934
(2)http://snowolf.iteye.com/blog/2156019
(3)https://www.cnblogs.com/biehongli/p/7650570.html
(4)https://i.cnblogs.com/EditPosts.aspx?postid=9365296&update=1
ZooKeeper初探之安装和配置的更多相关文章
- zookeeper 集群安装与配置
Zookeeper安装和配置 准备工作 安装 JDK,此步略. 下载 zookeeper wget http://archive.apache.org/dist/zookeeper/zookeeper ...
- Zookeeper第一课 安装和配置
简介: Zookeeper,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,来实现同步.配置维护.分集群.命名的服务. zookeeper是一个由多 ...
- ZooKeeper完全分布式安装和配置
ZooKeeper简介见官方网站. 1.环境说明 在两台装有centos6.4(32位)的server上安装ZooKeeper,官网建议至少3个节点.资源有限,本次实验就2台了. 须要提前安装jdk. ...
- ZooKeeper完全分布式安装与配置
Apache ZooKeeper是一个为分布式应用所设计开源协调服务,其设计目是为了减轻分布式应用程序所承担的协调任务.可以为用户提供同步.配置管理.分组和命名服务. 1.环境说明 在三台装有cent ...
- zookeeper集群安装与配置
转自: http://my.oschina.net/u/2377453/blog/464739 1.解压zookeeper 2.在$ZOOKEEPER_HOME/conf下创建zoo.cfg文件(参考 ...
- 2-2 zookeeper下载、安装以及配置环境变量
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/ FTP的软件:FileZilla Client 登录腾讯云服务器tail /va ...
- ZooKeeper安装与配置
一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...
- Zookeeper安装和配置
Zookeeper的安装和配置,可以配置成单机模式.伪集群模式.集群模式. 参考http://coolxing.iteye.com/blog/1871009 一. 单机模式 (1)zookeeper下 ...
- ZooKeeper的安装、配置、启动和使用(一)——单机模式
ZooKeeper的安装.配置.启动和使用(一)——单机模式 ZooKeeper的安装非常简单,它的工作模式分为单机模式.集群模式和伪集群模式,本博客旨在总结ZooKeeper单机模式下如何安装.配置 ...
随机推荐
- 入职第一个项目bug总结-2018/07/28
此项目是正式入职后的第一个项目,可能各种原因重重,导致测试提出了如此多的bug,关于那些因为需求不清楚而导致的就不说了,bug总结如下: 一.ElementUI table组件出现横向滚动条 原因:因 ...
- linux命令(6/11)--修改文件的用户组chgrp和文件所有者chown
在lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令取变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以.Chgrp命令就是change group的 ...
- [Cannot deserialize JSON array into type] NewtonSoft.Json解析数据出错原因
今天用NewtonSoft.JSon解析一个天气数据,数据格式如: {"status":1,"detail":"\u6570\u636e\u83b7\ ...
- 【JavaScript】撞墙的小球
参考: 1.JS 元素位置 设置元素位置:http://blog.sina.com.cn/s/blog_a2ec891e01011v9f.html 2.用JavaScript修改CSS属性 3.使用J ...
- 【笔记】Maven使用入门
参考<maven实战> 1.编写POM 2.编写主代码 3.编写测试代码 4.打包和运行 具体如下: 1.编写POM. <!-- XML头,指定了该xml文档的版本和编辑方式 --& ...
- 2018年Java面试题搜集
2018年Java面试题搜集 一.Servlet执行流程(浏览器访问servlet的过程容器) 客户端发起http请求,web服务器将请求发送到servlet容器,servlet容器解析url并根据w ...
- oracle 11 g数据库卸载(方法二)
1.开始->设置->控制面板->管理工具->服务 停止所有 Oracle服务. 2.开始->程序->Oracle - OraHome81->Oracle In ...
- shell脚本 入门 —— 符号篇
shell Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive). Shell还有一种执行命令的方式称 ...
- 20145222黄亚奇《网络对抗》web安全基础实践
web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语 ...
- 当root用户无密码,非超级权限用户时提示mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER privilege for this op解决方案
问题: 在centOS上安装了mysql后,卸载了又重新安装,使用mysqladmin -u root password 'new password' 更改密码,提示: mysqladmin: Can ...