<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                第一種:獨立模式 [root@distr01 conf]# cp zoo_sample.cfg zoo.cfg [root@distr01 conf]# vim zoo.cfg # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/tmp/zookeeper # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval= 解釋: tickTime:Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳,單位毫秒 initLimit:Zookeeper的Leader 接受客戶端(Follower)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 5個心跳的時間(也就是tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息,那么表明這個客戶端連接失敗。總的時間長度就是 5*2000=10 秒 syncLimit:表示 Leader 與 Follower 之間發送消息時請求和應答時間長度,最長不能超過多少個tickTime 的時間長度,總的時間長度就是 2*2000=4 秒。 clientport: 客戶端連接端口(server提供給客戶端連接的) dataDir: 數據目錄 dataLogDir: 日志目錄 第二種:集群模式 除了以上參數外,還需要額外增加如下: server.n=host:port1:port 數字n必須是myid中的值 port1: leader端口,供follower連接的端口 port2: 選舉端口 選舉leader時供其他follower連接的端口 環境: 三臺機器: A: 10.2.13.191 distr01.51yuki.cn B: 10.2.13.190 distr02.51yuki.cn C: 10.2.13.188 distr03.51yuki.cn 第一步:安裝zookeeper腳本 ~~~ #!/bin/bash #decsription install zookeeper SOFTDIR=/usr/local/src ZKVER=3.4.9 DATADIR=/opt/data/zookeeper DATALOGDIR=/opt/log/zookeeper.log #create zk datadir [ ! -d $DATADIR ] && mkdir -p $DATADIR [ ! -d $DATALOGDIR ] && mkdir -p $DATALOGDIR #install java environment cd $SOFTDIR && [ ! -f jdk-8u131-linux-x64.rpm ] && wget http://soft.51yuki.cn/jdk-8u131-linux-x64.rpm && yum -y localinstall jdk-8u131-linux-x64.rpm #install zookeeper cd $SOFTDIR && [ ! -f zookeeper-${ZKVER}.tar.gz ] && wget http://soft.51yuki.cn/zookeeper-${ZKVER}.tar.gz cd /usr/local if [ ! -d zookeeper-${ZKVER} ];then cd $SOFTDIR && tar xf zookeeper-${ZKVER}.tar.gz -C /usr/local ln -s /usr/local/zookeeper-${ZKVER} /usr/local/zookeeper fi #configure zookeeper env variables echo -e "export ZOOKEEPER_HOME=/usr/local/zookeeper\n export PATH=${ZOOKEEPER_HOME}/bin:$PATH" > /etc/profile.d/zookeeper.sh source /etc/profile.d/zookeeper.sh #configure zookeeper cd /usr/local/zookeeper/conf cat >zoo.cfg <<EOF tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/data/zookeeper dataLogDir=/opt/log/zookeeper clientPort=2181 #maxClientCnxns=60 #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 EOF ~~~ 第二步:填寫myid [root@distr01 conf]# cd /opt/data/zookeeper/ [root@distr01 zookeeper]# echo 01 > myid [root@distr02 ~]# cd /opt/data/zookeeper/ [root@distr02 zookeeper]# echo 02 > myid [root@distr03 ~]# cd /opt/data/zookeeper/ [root@distr03 zookeeper]# echo 03 > myid 第三步:配置zoo.cfg (三臺機器一樣) [root@distr01 conf]# cat zoo.cfg |grep -v ^# tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/data/zookeeper dataLogDir=/opt/log/zookeeper.log clientPort=2181 server.01=distr01:2888:3888 server.02=distr02:2888:3888 server.03=distr03:2888:3888 [root@distr01 conf]# scp zoo.cfg root@10.2.13.190:/usr/local/zookeeper/conf/ root@10.2.13.190's password: zoo.cfg 100% 1046 1.0KB/s 00:00 [root@distr01 conf]# scp zoo.cfg root@10.2.13.188:/usr/local/zookeeper/conf/ root@10.2.13.188's password: zoo.cfg 第四步:啟動zookeeper 服務器 distr01和distr02類似操作 [root@distr03 zookeeper]# vim /etc/profile.d/zookeeper.sh [root@distr03 zookeeper]# source /etc/profile.d/zookeeper.sh [root@distr03 zookeeper]# zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@distr03 zookeeper]# 查看: [root@distr03 zookeeper]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader [root@distr02 ~]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower [root@distr01 ~]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower 模擬distr03機器故障 [root@distr03 ~]# zkServer.sh stop 這個時候distr01就變成leader咯 [root@distr01 ~]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader 然后distr03修復后,然后上線,就是follower [root@distr03 ~]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower 測試: zk四字符客戶端指令 [root@huancun02 ~]# echo conf | nc 10.2.13.191 2181 clientPort=2181 dataDir=/opt/data/zookeeper/version-2 dataLogDir=/opt/log/zookeeper.log/version-2 tickTime=2000 maxClientCnxns=60 minSessionTimeout=4000 maxSessionTimeout=40000 serverId=1 initLimit=10 syncLimit=5 electionAlg=3 electionPort=3888 quorumPort=2888 peerType=0 [root@huancun02 ~]# echo ruok | nc 10.2.13.191 2181 imok [root@huancun02 ~]# echo envi | nc 10.2.13.191 2181 Environment: zookeeper.version=3.4.9-1757313, built on 08/23/2016 06:50 GMT host.name=distr01.51yuki.cn java.version=1.8.0_131 java.vendor=Oracle Corporation java.home=/usr/java/jdk1.8.0_131/jre java.class.path=/usr/local/zookeeper/bin/../build/classes:/usr/local/zookeeper/bin/../build/lib/*.jar:/usr/local/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper/bin/../lib/netty-3.10.5.Final.jar:/usr/local/zookeeper/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper/bin/../zookeeper-3.4.9.jar:/usr/local/zookeeper/bin/../src/java/lib/*.jar:/usr/local/zookeeper/bin/../conf: java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib java.io.tmpdir=/tmp java.compiler=<NA> os.name=Linux os.arch=amd64 os.version=3.10.0-514.el7.x86_64 user.name=root user.home=/root user.dir=/root [root@huancun02 ~]# echo cons |nc 10.2.13.191 2181 /10.2.13.197:54306[0](queued=0,recved=1,sent=0) [root@huancun02 ~]# echo reqs |nc 10.2.13.191 2181 [root@huancun02 ~]# echo stat |nc 10.2.13.191 2181 Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT Clients: /10.2.13.197:54310[0](queued=0,recved=1,sent=0) Latency min/avg/max: 0/0/0 Received: 12 Sent: 11 Connections: 1 Outstanding: 0 Zxid: 0x200000000 Mode: leader Node count: 4 利用客戶端zkCli.sh (客戶端需要安裝zookeeper不要啟動服務,而使用客戶端) [root@huancun02 ~]# zkCli.sh -server 10.2.13.191:2181 ~~~ WatchedEvent state:SyncConnected type:None path:null [zk: 10.2.13.191:2181(CONNECTED) 0] [zk: 10.2.13.191:2181(CONNECTED) 0] [zk: 10.2.13.191:2181(CONNECTED) 0] clear ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port [zk: 10.2.13.191:2181(CONNECTED) 1] h ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port [zk: 10.2.13.191:2181(CONNECTED) 2] ls / [zookeeper] [zk: 10.2.13.191:2181(CONNECTED) 3] cd /zookeeper ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port [zk: 10.2.13.191:2181(CONNECTED) 4] ls /zookeeper [quota] [zk: 10.2.13.191:2181(CONNECTED) 5] ls /zookeeper/quota [] [zk: 10.2.13.191:2181(CONNECTED) 6] ll ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:port [zk: 10.2.13.191:2181(CONNECTED) 7] ls /zookeeper/quota [] [zk: 10.2.13.191:2181(CONNECTED) 8] create /mydata helloozk Created /mydata [zk: 10.2.13.191:2181(CONNECTED) 9] ls / [zookeeper, mydata] [zk: 10.2.13.191:2181(CONNECTED) 10] ls /mydata [] [zk: 10.2.13.191:2181(CONNECTED) 11] get /mydata helloozk cZxid = 0x200000002 ctime = Tue Feb 27 15:24:12 CST 2018 mZxid = 0x200000002 mtime = Tue Feb 27 15:24:12 CST 2018 pZxid = 0x200000002 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0 [zk: 10.2.13.191:2181(CONNECTED) 12] set /mydata myworld cZxid = 0x200000002 ctime = Tue Feb 27 15:24:12 CST 2018 mZxid = 0x200000003 mtime = Tue Feb 27 15:25:49 CST 2018 pZxid = 0x200000002 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 7 numChildren = 0 [zk: 10.2.13.191:2181(CONNECTED) 13] create /mydata/distr01 distr01_data Created /mydata/distr01 [zk: 10.2.13.191:2181(CONNECTED) 14] create /mydata/distr02 distr02_data Created /mydata/distr02 [zk: 10.2.13.191:2181(CONNECTED) 15] create /mydata/distr03 distr03_data Created /mydata/distr03 [zk: 10.2.13.191:2181(CONNECTED) 16] ls /root Node does not exist: /root [zk: 10.2.13.191:2181(CONNECTED) 17] ls /mydata [distr02, distr03, distr01] [zk: 10.2.13.191:2181(CONNECTED) 18] get /mydata/distr0 distr02 distr03 distr01 [zk: 10.2.13.191:2181(CONNECTED) 18] get /mydata/distr01 distr01_data cZxid = 0x200000004 ctime = Tue Feb 27 15:27:00 CST 2018 mZxid = 0x200000004 mtime = Tue Feb 27 15:27:00 CST 2018 pZxid = 0x200000004 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 12 numChildren = 0 [zk: 10.2.13.191:2181(CONNECTED) 19] get /mydata/distr02 distr02_data cZxid = 0x200000005 ctime = Tue Feb 27 15:27:06 CST 2018 mZxid = 0x200000005 mtime = Tue Feb 27 15:27:06 CST 2018 pZxid = 0x200000005 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 12 numChildren = 0 [zk: 10.2.13.191:2181(CONNECTED) 20] get /mydata/distr03 distr03_data cZxid = 0x200000006 ctime = Tue Feb 27 15:27:11 CST 2018 mZxid = 0x200000006 mtime = Tue Feb 27 15:27:11 CST 2018 pZxid = 0x200000006 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 12 numChildren = 0 [zk: 10.2.13.191:2181(CONNECTED) 22] delete /mydata/distr0 distr02 distr03 distr01 [zk: 10.2.13.191:2181(CONNECTED) 22] delete /mydata/distr03 [zk: 10.2.13.191:2181(CONNECTED) 23] ls /mydata [distr02, distr01] ~~~ 客戶端API調用 ![](https://box.kancloud.cn/0030b0e6edfd8f11a8903274dd69fb0a_814x535.png) 通過eclispe創建一個java項目,然后在該java項目上創建一個類庫lib,然后把服務器上這些目錄 zookeeper-3.4.9.jar jline-0.9.94.jar log4j-1.2.16.jar netty-3.10.5.Final.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar 拷貝到Lib文件上 ,然后右擊build ![](https://box.kancloud.cn/12bf14c75946cb5d2462fe3767741c6e_580x199.png) 第二種:偽集群案例(偽分布)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看