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初探之安装和配置的更多相关文章

  1. zookeeper 集群安装与配置

    Zookeeper安装和配置 准备工作 安装 JDK,此步略. 下载 zookeeper wget http://archive.apache.org/dist/zookeeper/zookeeper ...

  2. Zookeeper第一课 安装和配置

    简介: Zookeeper,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,来实现同步.配置维护.分集群.命名的服务. zookeeper是一个由多 ...

  3. ZooKeeper完全分布式安装和配置

    ZooKeeper简介见官方网站. 1.环境说明 在两台装有centos6.4(32位)的server上安装ZooKeeper,官网建议至少3个节点.资源有限,本次实验就2台了. 须要提前安装jdk. ...

  4. ZooKeeper完全分布式安装与配置

    Apache ZooKeeper是一个为分布式应用所设计开源协调服务,其设计目是为了减轻分布式应用程序所承担的协调任务.可以为用户提供同步.配置管理.分组和命名服务. 1.环境说明 在三台装有cent ...

  5. zookeeper集群安装与配置

    转自: http://my.oschina.net/u/2377453/blog/464739 1.解压zookeeper 2.在$ZOOKEEPER_HOME/conf下创建zoo.cfg文件(参考 ...

  6. 2-2 zookeeper下载、安装以及配置环境变量

    https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/ FTP的软件:FileZilla Client 登录腾讯云服务器tail /va ...

  7. ZooKeeper安装与配置

    一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...

  8. Zookeeper安装和配置

    Zookeeper的安装和配置,可以配置成单机模式.伪集群模式.集群模式. 参考http://coolxing.iteye.com/blog/1871009 一. 单机模式 (1)zookeeper下 ...

  9. ZooKeeper的安装、配置、启动和使用(一)——单机模式

    ZooKeeper的安装.配置.启动和使用(一)——单机模式 ZooKeeper的安装非常简单,它的工作模式分为单机模式.集群模式和伪集群模式,本博客旨在总结ZooKeeper单机模式下如何安装.配置 ...

随机推荐

  1. vue路由两种传参的区别

    //定义路由 { path:"/detail", name:"detail", component:home } //这种做法是错误的,这是query传参的方式 ...

  2. 使用VirtualBox安装Android 4.2.2 x86 .

    http://blog.csdn.net/kunoy/article/details/8768205 virtual box 安装 android x86 不显示鼠标, --> 控制 --> ...

  3. 用Java编程计算兔子生兔子的问题

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 这是一个典型的Fibonacci数列问 ...

  4. Boot 横向布局

    <div class="form-group"> <label for="name" class="col-lg-2 control ...

  5. 十二道MR习题 – 1 – 排序

    题目: 一个文件,大小约为100G.文件的每一行都是一个数字,要求对文件中的所有数字进行排序. 对于这个题目,了解过Hadoop的同学可以笑而不语了.即使用spark实现也是非常简单的事情. 先说下如 ...

  6. scala学习手记12 - 字段、方法和构造函数

    在上一节创建了一个scala类,如果没有更多的方法,scala类的定义还可以更简单一些,看一下下面这个CreditCard类的定义: class CreditCard(val number: Int, ...

  7. 使用ConcurrentLinkedQueue惨痛的教训

    服务端原本有个定时任务对一个集合ArrayList 中的消息做处理. 因为考虑到处理消息是先进先出原则,所以优化的时候考虑改用ConcurrentLinkedQueue 当时没仔细深入研究过这个集合就 ...

  8. 项目中如何使用EF

    本文将在技术层面挑战园子里的权威大牛们,言语不敬之处敬请包涵.本文旨为技术交流,欢迎拍砖. 园子里面分享和推荐Entity Framework(以下简称EF)的Repository(仓储)设计模式的文 ...

  9. angular-schema-form 自动表单生成

    基本用法 通过bower安装之后,将schemaForm模块载入到模块定义中,fuse中安装第三方包需要在app/core/core.module.js中声明. 然后在controller里面,将sc ...

  10. extundelete实现Linux下文件/文件夹数据恢复!

    我用的是Centos系统,在安装extundelete之前需要安装e2fsprogs,e2fsprogs-libs,e2fsprogs-devel. 这里用:yum install e2fsprogs ...