• 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=2000 #Zookeeper服务器心跳时间,单位为ms
    initLimit=10 #投票选举新Leader的初始化时间
    syncLimit=5 #leader与follower心跳检测最大容忍时间,相应超过syncLimit*tickTime,leader认为follwer死掉,从服务器列表中删除
    clientPor=2181
    dataDir=/usr/local/zookeeper-3.4.5/data
    dataLogDir=/usr/local/zookeeper-3.4.5/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

  • 相关阅读:
    Hive学习笔记记录
    Hadoop学习笔记记录
    python学习笔记记录
    2018高级软件工程——助教总结
    Week3 第二次结对编程
    Week2 第一次结对编程
    Week1 博客作业
    最后一周总结
    阅读和提问3
    个人项目 案例分析
  • 原文地址:https://www.cnblogs.com/xiaobingqianrui/p/9365296.html
Copyright © 2020-2023  润新知