<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之旅 廣告
                [TOC] # Zookeeper工作機制 Zookeeper集群角色 Zookeeper集群的角色: Leader 和 follower (Observer) Observer: http://damacheng009.iteye.com/blog/2086625 zk集群最好配成奇數個節點 只要集群中有半數以上節點存活,集群就能提供服務 # 機器準備 1. 安裝到3臺虛擬機上 2. 安裝好JDK 3. 上傳安裝包。上傳用工具。 4. 解壓 下載鏈接:http://archive.apache.org/dist/zookeeper/ ~~~ su - hadoop(切換到hadoop用戶) tar -zxvf zookeeper-3.4.5.tar.gz(解壓) ~~~ 5. 重命名 ~~~ mv zookeeper-3.4.5 zookeeper(重命名文件夾zookeeper-3.4.5為zookeeper) ~~~ 可以刪除里面一些源碼工程相關的文件,剩下的是這些: ![](https://box.kancloud.cn/f00c99c2d0931856290ec9387f5317ec_639x191.png) # 修改環境變量 (注意:3臺zookeeper都需要修改) 1. su – root(切換用戶到root) 2. vi /etc/profile(修改文件) 3. 添加內容: ~~~ export ZOOKEEPER_HOME=/home/hadoop/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin ~~~ 4. 加載環境配置: ~~~ source /etc/profile ~~~ 5. 修改完成后切換回hadoop用戶: ~~~ su - hadoop ~~~ # 修改Zookeeper配置文件 1. 用root用戶操作 ~~~ cd zookeeper/conf mv zoo_sample.cfg zoo.cfg ~~~ 2. vi zoo.cfg ~~~ # The number of milliseconds of each tick # 基本事件單元,以毫秒為單位。它用來控制心跳和超時,默認情況下最小的會話超時時間為兩倍的 tickTime # 心跳的周期多少毫秒 tickTime=2000 # The number of ticks that the initial # synchronization phase can take # 允許?follower?(相對于?leader?而言的“客戶端”)連接并同步到?leader?的初始化連接時間,它以?tickTime?的倍數來表示。當超過設置倍數的?tickTime?時間,則連接失敗 # 初始化可以花去心跳的個數,初始通信時限 initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement # leader?與?follower?之間發送消息,請求和應答時間長度。如果?follower?在設置的時間內不能與?leader?進行通信,那么此?follower?將被丟棄 # 發送到一個請求到獲得響應所最大時差,同步通信時限 syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. # 數據存放的目錄 # 數據目錄.?可以是任意目錄,其中的dataDir目錄和dataLogDir需要提前建立好 # 注意?應該謹慎地選擇日志存放的位置,使用專用的日志存儲設備能夠大大地提高系統的性能,如果將日志存儲在比較繁忙的存儲設備上,那么將會在很大程度上影響系統的性能 # 數據文件目錄+數據持久化路徑 dataDir=/usr/local/var/run/zookeeper/data # log目錄,?同樣可以是任意目錄.?如果沒有設置該參數,?將使用和dataDir相同的設置,其中的dataDir目錄和dataLogDir需要提前建立好 # 注意?應該謹慎地選擇日志存放的位置,使用專用的日志存儲設備能夠大大地提高系統的性能,如果將日志存儲在比較繁忙的存儲設備上,那么將會在很大程度上影響系統的性能。 #dataLogDir=/export/servers/logs/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 # 這個操作將限制連接到?ZooKeeper?的客戶端的數量,限制并發連接的數量,它通過?IP?來區分不同的客戶端。此配置選項可以用來阻止某些類別的?Dos?攻擊。將它設置為?0?或者忽略而不進行設置將會取消對并發連接的限制。 #maxClientCnxns=60 #最小的會話超時時間以及最大的會話超時時間。 #其中,最小的會話超時時間默認情況下為?2?倍的?tickTme?時間 #最大的會話超時時間默認情況下為?20?倍的會話超時時間 # minSessionTimeout=4000 # maxSessionTimeout=10000 # 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=1 # server.X=A:B:C?其中X是一個數字,?表示這是第幾號server.?A是該server所在的IP地址.?B配置該server和集群中的leader交換消息所使用的端口.?C配置選舉leader時所使用的端口. #在之前設置的dataDir中新建myid文件,?寫入一個數字,?該數字表示這是第幾號server.?該數字必須和zoo.cfg文件中的server.X中的X一一對應. # zookeeper那幾臺機器,前面端口是心跳端口,后面是選舉端口 # server.1是自己定的,不要重復 server.1=192.168.33.12:2888:3888 server.2=192.168.33.22:2888:3888 ~~~ 3. 添加內容: ~~~ dataDir=/root/apps/zookeeper/zkdata dataLogDir=/home/hadoop/zookeeper/log server.1=mini1:2888:3888 ## (心跳端口、選舉端口) server.2=mini2:2888:3888 server.3=mini3:2888:3888 ~~~ 4. 創建文件夾: ~~~ cd /root/apps/zookeeper mkdir zkdata mkdir -m 755 log ~~~ 5. 在data文件夾下新建myid文件,myid的文件內容為: ~~~ cd zkdata echo 1 > myid ~~~ echo的數字要和配置文件中server后面對應 # 分發安裝包到其他機器 ~~~ scp -r /root/apps root@mini2:/root/ scp -r /root/apps root@mini3:/root/ ~~~ # 修改其他機器的配置文件 1、修改myid文件 到mini2上:修改myid為:2 到mini3上:修改myid為:3 # 啟動(每臺機器) 注: 1. 事先將三臺服務器的防火墻都關掉 2. 全網統一hosts映射 先配好一臺上的hosts 然后: ~~~ scp /etc/hosts mini2:/etc scp /etc/hosts mini3:/etc ~~~ 3. 然后一臺一臺地啟動 ~~~ ./zkServer.sh start ~~~ 啟動失敗,會在當前運行啟動命令位置有個.out文件,查看這個文件就行 或者編寫一個腳本來批量啟動所有機器: ~~~ for host in mini1 mini2 mini3 do ssh $host "source /etc/profile;/root/apps/zookeeper/bin/zkServer.sh start" done ~~~ # 查看集群狀態 1. jps(查看進程) 2. ./zkServer.sh status(查看集群狀態,主從信息) 啟動成功會有這樣的 ~~~ [root@22 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper/bin/../conf/zoo.cfg Mode: leader ~~~ ~~~ [root@12 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /root/zookeeper/bin/../conf/zoo.cfg Mode: follower ~~~ # 可視化 ## zkui zkui為zookeeper提供了一個web管理界面,可以對zookeepr的節點值進行CRUD操作,同時也提供了安全認證。 github地址:https://github.com/DeemOpen/zkui **安裝** 執行前需要安裝 java和maven環境 ~~~ $ git clone https://gitee.com/ilanni/zkui.git $ cd zkui/ # 進入工程界面 $ mvn clean install # 進行maven打包,執行成功后會生成target文件夾,其中有jar文件。 ~~~ 執行結束后在zkui文件夾下生成一個target文件夾 **啟動** 1. 將config.cfg文件復制到target文件夾下: ~~~ $ cp config.cfg target/ ~~~ target文件夾中有兩個jar包,我們只需要啟動zkui-2.0-SNAPSHOT-jar-with-dependencies.jar就可以了(但是在啟動之前需要配置config.cfg文件) 修改 config.cfg文件: ~~~ $ vim target/config.cfg ~~~ 修改如下配置: ~~~ # zkui web頁面訪問端口 serverPort=9090 # zookeeper集群的IP地址和端口 zkServer=localhost:2181,localhost:2182 # 設置登錄zkui的用戶名和密碼,這里我們將用戶名和密碼都設置為admin userSet = {"users": [{ "username":"admin" , "password":"admin","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]} ~~~ 啟動zkui服務 ~~~ cd target $ java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar ~~~ 訪問`http://localhost:9090`即可看到以下界面:輸入剛剛設置的用戶名密碼:admin/admin即可登錄 ## idea中zk idea中plugin下載zookeeper 然后配置下 ![](https://box.kancloud.cn/f1da3a6e38f71a222eef844c44ebdeb0_1288x824.png) 然后apply->ok 在頁面中command+e就會出現
                  <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>

                              哎呀哎呀视频在线观看