美文网首页我爱编程ProMonkey Lab
Linux下Zookeeper集群配置

Linux下Zookeeper集群配置

作者: ProMonkey_LAIN | 来源:发表于2018-06-27 15:04 被阅读0次

    简介

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

    • ZooKeeper的基本运转流程:
    1. 选举Leader,选举机制大于1/2。
    2. 同步数据。
    3. 选举Leader过程中算法有很多,但要达到的选举标准是一致的。
    4. Leader要具有最高的执行ID,类似root权限。
    5. 集群中大多数的机器得到响应并Follow选出的Leader。
    • Leader工作流程:
    1. 恢复数据;
    2. 维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;
    3. Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。PING消息是指Learner的心跳信息;REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;ACK消息是Follower的对提议的回复,超过半数的Follower通过,则commit该提议;REVALIDATE消息是用来延长SESSION有效时间。
    • Follower工作流程:

      • Follower主要有四个功能
      1. 向Leader发送请求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息)
      2. 接收Leader消息并进行处理;
      3. 接收Client的请求,如果为写请求,发送给Leader进行投票;
      4. 返回Client结果。
      • Follower的消息循环处理如下几种来自Leader的消息
      1. PING消息:心跳消息
      2. PROPOSAL消息:Leader发起的提案,要求Follower投票
      3. COMMIT消息:服务器端最新一次提案的信息
      4. UPTODATE消息:表明同步完成
      5. REVALIDATE消息:根据Leader的REVALIDATE结果,关闭待revalidate的session还是允许其接受消息
      6. SYNC消息:返回SYNC结果到客户端,这个消息最初由客户端发起,用来强制得到最新的更新。
        更多内容:http://www.cnblogs.com/felixzh/p/5869212.html

    安装配置

    • 环境信息
    IP HOST_NAME
    192.168.10.10 Ser-Zookeeper01
    192.168.10.11 Ser-Zookeeper02
    192.168.10.12 Ser-Zookeeper03
    • JDK安装
    cd  /home/worker/soft/
    wget http://10.12.3.24/soft/jdk/jdk1.8.0_65.tar.gz
    mkdir -p /home/worker/usr/local/
    tar xf jdk1.8.0_65.tar.gz -C /home/worker/usr/local/
    ln -s /home/worker/usr/local/jdk1.8.0_65 /home/worker/usr/local/jdk
    vim ~/.bash_profile
    #########JDK ENV#########
    export JAVA_HOME=/home/worker/usr/local/jdk
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    
    生效环境变量
    source ~/.bash_profile
    
    • 安装zookeeper,配置单点
    wget http://10.12.3.24/upload/zhaobin/zookeeper/zookeeper-3.4.6.tar.gz
    tar xf zookeeper-3.4.6.tar.gz -C ~/opt/ 
    cd ~/opt/zookeeper-3.4.6/conf
    cp zoo_sample.cfg zoo.cfg
    
    #修改配置文件
    vim zoo.cfg
    dataDir=/home/worker/opt/zookeeper_data/
    
    #创建数据目录
    mkdir -p /home/worker/opt/zookeeper_data/
    
    • 关闭、启动、重启服务等
    /home/worker/opt/zookeeper-3.4.6/bin/zkServer.sh --help
    JMX enabled by default
    Using config: /home/worker/opt/zookeeper-3.4.6/bin/../conf/zoo.cfg
    Usage: /home/worker/opt/zookeeper-3.4.6/bin/zkServer.sh {start|start-foreground|stop|restart|status|upgrade|print-cmd}
    

    集群配置

    • 在集群的每台服务器host中添加以下配置
    vim /etc/hosts
    192.168.10.10   Ser-Zookeeper01
    192.168.10.11   Ser-Zookeeper02
    192.168.10.12   Ser-Zookeeper03
    
    • 修改配置文件,配置集群
    vim zoo.cfg
    server.1=Ser-Zookeeper01:2888:3888 
    server.2=Ser-Zookeeper02:2888:3888 
    server.3=Ser-Zookeeper03:2888:3888
    [worker@Ser-Zookeeper01 conf]$ echo '1' >> /home/worker/opt/zookeeper_data/myid
    [worker@Ser-Zookeeper02 conf]$ echo '2' >> /home/worker/opt/zookeeper_data/myid
    [worker@Ser-Zookeeper03 conf]$ echo '3' >> /home/worker/opt/zookeeper_data/myid
    
    • 重启zookeeper服务
    ~/opt/zookeeper-3.4.6/bin/zkServer.sh restart
    

    相关文章

      网友评论

        本文标题:Linux下Zookeeper集群配置

        本文链接:https://www.haomeiwen.com/subject/dkwbyftx.html