zoukankan      html  css  js  c++  java
  • zookeeper-分布式协调技术的搭建

    我们今天要搭建的zookeeper服务想需要用三台虚拟机来进行搭建;

    复制代码
    Zookeeper 的工作原理
    zookeeper 的核心是原子广播,使用这个机制保证各个 Server 间的同步,实现原子广播的协议叫做 Zab 协议
    Zab 协议有两种模式:恢复模式(选主)和广播模式(同步),当服务启动或 Leader 宕机,Zab 就进入恢复模式,一旦 Leader 被选举出来,且大多数 Server 完成 Leader 状态同步后,即进入广播模式
    每个工作中的 Server 都有三种工作状态:
    LOOKING -- 搜寻 Leader
    LEADING -- 当前 Server 是集群 Leader
    FOLLOWING -- Leader 已经选举出,当前 Server 节点与 Leader 同步
    复制代码

    1.软件的准备;jdk搭建java环境;

    [root@01 zookeeper]# ls
    jdk-8u66-linux-x64.rpm  zookeeper-3.4.10.tar

    2.查看java环境是否处在     java-version,没有的话需要安装jdk软件包;

    3.解压zookeeper包,并移动到usr下生成相关文件;

    [root@01 zookeeper]# tar xf zookeeper-3.4.10.tar ^C
    [root@01 zookeeper]# mv zookeeper-3.4.10 /usr/local/zookeeper

    4.为了标准化管理,我们在opt目录下创建zookeeper相关的配置文件、日志文件、数据文件;

    进入到usr/local/zookeeper目录

    mkdir -p /opt/zookeeper/{conf,logs,data}
    cp conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg   拷贝usr文件到我们的opt文件里生成配置文件

     

     5.修改日志文件

    [root@vlnx251104 zookeeper]# vim conf/log4j.properties 

    6.修改其他配置文件

    [root@vlnx251104 zookeeper]# vim bin/zkEnv.sh 
    复制代码
    
    

    #if [ "x$ZOOCFG" = "x" ]
    #then
    # ZOOCFG="zoo.cfg"
    #fi


    47 ZOOCFG="/opt/zookeeper/conf/zoo.cfg" 48 49 if [ -f "$ZOOCFGDIR/java.env" ] 50 then 51 . "$ZOOCFGDIR/java.env" 52 fi 53 54 if [ "x${ZOO_LOG_DIR}" = "x" ] 55 then 56 ZOO_LOG_DIR="/opt/zookeeper/logs" 57 fi 58 59 if [ "x${ZOO_LOG4J_PROP}" = "x" ] 60 then 61 ZOO_LOG4J_PROP="INFO,ROLLINGFILE" 62 fi
    复制代码

    7.注释掉bin/zkServer.sh里面的部分内容

    复制代码
    82 #fi
     83 #
     84 #if [ "x$2" != "x" ]
     85 #then
     86 #    ZOOCFG="$ZOOCFGDIR/$2"
     87 #fi
     88 #
     89 ## if we give a more complicated path to the config, don't screw around in $ZOOC    FGDIR
     90 #if [ "x$(dirname "$ZOOCFG")" != "x$ZOOCFGDIR" ]
     91 #then
     92 #    ZOOCFG="$2"
     93 #fi
    复制代码

     8.创建一个编号文件  

    9.    ./bin/zkServer.sh start      启动zookeeper

    [root@01 zookeeper]# echo 1 > /opt/zookeeper/data/myid

    到这里我们单台的zookeeper就完成了,接下来我们要做的就是把这台虚拟机的配置文件拷给另外两台虚拟机

    复制代码
    [root@vlnx251104 zookeeper]# echo 1 > /opt/zookeeper/data/myid
    
    [root@vlnx251104 zookeeper]# scp -r /usr/local/zookeeper/ 192.168.251.105:/usr/local/
    [root@vlnx251104 zookeeper]# scp -r /usr/local/zookeeper/ 192.168.251.106:/usr/local/
    
    [root@vlnx251104 zookeeper]# scp -r /opt/zookeeper/ 192.168.251.105:/opt/
    [root@vlnx251104 zookeeper]# scp -r /opt/zookeeper/ 192.168.251.106:/opt/
    复制代码
    [root@vlnx251104 zookeeper]# echo 1 > /opt/zookeeper/data/myid
    [root@vlnx251105 ~]# echo 2 > /opt/zookeeper/data/myid 
    [root@vlnx251106 ~]# echo 3 > /opt/zookeeper/data/myid

    测试:

    复制代码
    [root@01 zookeeper]# ./bin/zkCli.sh 
    Connecting to localhost:2181
    Welcome to ZooKeeper!
    JLine support is enabled
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0] 
    复制代码
  • 相关阅读:
    streamsets 集成 cratedb 测试
    streamsets k8s 部署试用
    streamsets rest api 转换 graphql
    StreamSets sdc rpc 测试
    StreamSets 相关文章
    StreamSets 多线程 Pipelines
    StreamSets SDC RPC Pipelines说明
    StreamSets 管理 SDC Edge上的pipeline
    StreamSets 部署 Pipelines 到 SDC Edge
    StreamSets 设计Edge pipeline
  • 原文地址:https://www.cnblogs.com/MR-ws/p/11251643.html
Copyright © 2011-2022 走看看