天天看點

ZooKeeper安裝和配置及TaobaoSchedule整合部署

從 ZooKeeper官網 下載下傳 zookeeper-3.4.8.tar.gz。将下載下傳的 zookeeper-3.4.8.tar.gz 檔案拷貝到 /opt 目錄下。

安裝 ZooKeeper 之前需要先安裝 JDK, 關于 JDK 的安裝這裡就不說了

1.解壓

<code>sudo tar -zxvf zookeeper-3.4.8.tar.gz</code>

2.目錄重命名

<code>sudo mv zookeeper-3.4.8 zookeeper</code>

3.修改使用者和使用者組

<code>sudo chown —R hadoop:hadoop zookeeper/</code>

4.環境變量配置

編輯 .bashrc 檔案, 在檔案末尾添加以下環境變量配置:

運作以下指令使環境變量生效:

<code>source .bashrc</code>

初次使用 ZooKeeper 時, 需要将 $ZOOKEEPER_HOME/conf 目錄下的 zoo_sample.cfg 重命名為 zoo.cfg, zoo.cfg 預設配置如下:

配置項說明如下:

tickTime: ZooKeeper 中使用的基本時間單元, 以毫秒為機關, 預設值是 2000。它用來調節心跳和逾時。例如, 預設的會話逾時時間是兩倍的 tickTime。

initLimit: 預設值是 10, 即 tickTime 屬性值的 10 倍。它用于配置允許 followers 連接配接并同步到 leader 的最大時間。如果 ZooKeeper 管理的資料量很大的話可以增加這個值。

syncLimit: 預設值是 5, 即 tickTime 屬性值的 5 倍。它用于配置leader 和 followers 間進行心跳檢測的最大延遲時間。如果在設定的時間内 followers 無法與 leader 進行通信, 那麼 followers 将會被丢棄。

dataDir: ZooKeeper 用來存儲記憶體資料庫快照的目錄, 并且除非指定其它目錄, 否則資料庫更新的事務日志也将會存儲在該目錄下。建議配置 dataLogDir 參數來指定 ZooKeeper 事務日志的存儲目錄。

clientPort: 伺服器監聽用戶端連接配接的端口, 也即用戶端嘗試連接配接的端口, 預設值是 2181。

maxClientCnxns: 在 socket 級别限制單個用戶端與單台伺服器之前的并發連接配接數量, 可以通過 IP 位址來區分不同的用戶端。它用來防止某種類型的 DoS 攻擊, 包括檔案描述符耗盡。預設值是 60。将其設定為 0 将完全移除并發連接配接數的限制。

autopurge.snapRetainCount: 配置 ZooKeeper 在自動清理的時候需要保留的資料檔案快照的數量和對應的事務日志檔案, 預設值是 3。

autopurge.purgeInterval: 和參數 autopurge.snapRetainCount 配套使用, 用于配置 ZooKeeper 自動清理檔案的頻率, 預設值是 1, 即預設開啟自動清理功能, 設定為 0 則表示禁用自動清理功能。

更多 ZooKeeper 配置後面會寫文章較長的描述。

1.zoo.cfg配置

2.啟動 ZooKeeper 服務

可以使用如下指令來啟動 ZooKeeper 服務

<code>zkServer.sh start</code>

3.驗證 ZooKeeper 服務

服務啟動完成後, 可以使用 telnet 和 stat 指令驗證伺服器啟動是否正常:

在單機模式中, Mode 的值是 "standalone"。

4.停止 ZooKeeper 服務

想要停止 ZooKeeper 服務, 可以使用如下指令:

<code>zkServer.sh stop</code>

在 master 機器上, 在單機模式的配置檔案下增加了最後 5 行配置:

相關配置說明:

叢集模式中, 叢集中的每台機器都需要感覺其它機器, 在 zoo.cfg 配置檔案中, 可以按照如下格式進行配置, 每一行代表一台伺服器配置:

<code>server.id=host:port:port</code>

id 被稱為 Server ID, 用來辨別伺服器在叢集中的序号。同時每台 ZooKeeper 伺服器上, 都需要在資料目錄(即 dataDir 指定的目錄) 下建立一個 myid 檔案, 該檔案隻有一行内容, 即對應于每台伺服器的Server ID

ZooKeeper 叢集中, 每台伺服器上的 zoo.cfg 配置檔案内容一緻。

server.1 的 myid 檔案内容就是 "1"。每個伺服器的 myid 内容都不同, 且需要保證和自己的 zoo.cfg 配置檔案中 "server.id=host:port:port" 的 id 值一緻。

id 的範圍是 1 ~ 255。

2.建立myid檔案

在 dataDir 指定的目錄下 (即 /opt/zookeeper/data 目錄) 建立名為 myid 的檔案, 檔案内容和 zoo.cfg 中目前機器的 id 一緻。根據上述配置, master 的 myid 檔案内容為 1。

3.slave配置

按照相同步驟, 為 slave01 和 slave02 配置 zoo.cfg 和 myid 檔案。zoo.cfg檔案内容相同, slave01 的 myid 檔案内容為 2, slave02 的 myid 檔案内容為 3。

4.叢集啟動

在叢集中的每台機器上執行以下啟動指令

master 和 slave01 兩台伺服器的 Mode 值均為 follower, 表明它們在叢集中的角色為 Follower。

slave02 伺服器的 Mode 值為 leader, 表明它在叢集中的角色為 Leader。

tbSchedule就是個用servlet/JSP 寫的web項目,我們可以直接把war包部署到tomcat中,然後在浏覽器通路

将TaobaoSchedule.zip跟tomca項目一樣部署在指定檔案夾下

1.解壓TaobaoSchedule.zip

2.進入conf目錄,将端口和路徑改成自己需要的

3.進到bin目錄下,啟動Tomcat

然後從浏覽器通路一下

輸入伺服器位址和TaobaoSchedule端口号通路

ZooKeeper安裝和配置及TaobaoSchedule整合部署

本文轉自 xinsir999 51CTO部落格,原文連結:http://blog.51cto.com/xinsir/2051817,如需轉載請自行聯系原作者