2.kafka叢集環境搭建
阿新 • • 發佈:2020-07-24
2.1.叢集主機規劃
機器名稱 | ip/mac地址 | 硬體資源 | 安裝服務 | |
---|---|---|---|---|
1 | cdh1 root/server123 | 192.168.80.100,00:50:56:2B:5B:EF | cpu:2核 , 記憶體:2.5g ,硬碟20g ,網絡卡:千兆網絡卡 | jdk、zookeeper、kafka |
2 | cdh2 root/server123 | 192.168.80.101,00:50:56:39:23:67 | cpu:2核 , 記憶體:2.5g ,硬碟20g ,網絡卡:千兆網絡卡 | jdk、zookeeper、kafka |
3 | cdh3 root/server123 | 192.168.80.102,00:50:56:3E:3A:0B | cpu:2核 , 記憶體:2.5g ,硬碟20g ,網絡卡:千兆網絡卡 |
說明:叢集主機之間需要配置ssh免密碼登入
免密登入參考:https://www.cnblogs.com/luzhanshi/p/13369797.html
#zookeeper官網地址:
http://zookeeper.apache.org/
一個分散式協調服務,管理我們的叢集
官網提供配置說明:https://zookeeper.apache.org/doc/current/zookeeperStarted.html
/usr/local/zookeeper/:
選單進入conf目錄下面,將zoo_sample.cfg複製一份到本目錄並改名為zoo.cfg
vim編輯該配置檔案:
#編輯檔案: vim zoo.cfg ---------------------------------------------------------------------------- # The number of milliseconds of each tick #時間單元,zk中的所有時間都是以該時間單元為基礎,進行整數倍配置(單位是毫秒,下面配置的是2秒) tickTime=2000 # The number of ticks that the initial # synchronization phase can take #follower在啟動過程中,會從leader同步最新資料需要的最大時間。如果叢集規模比較大,可以調大該引數 initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement #leader與叢集中所有機器進行心跳檢查的最大時間。如果超出該時間,某follower沒有迴應,則說明該follower下線 syncLimit=5# the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. #事務日誌輸出目錄 dataDir=/usr/local/zookeeper/zookeeper-3.4.5-cdh5.14.0/zkdatas
# 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 #需要保留檔案數目,預設就是3個 autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #自動清理事務日誌和快照檔案的頻率,這裡是1個小時 autopurge.purgeInterval=1 #叢集伺服器配置,數字1/2/3需要與myid檔案一致。右邊兩個埠,2888表示資料同步和通訊埠;3888表示選舉埠 server.1=域名1:2888:3888 server.2=域名2:2888:3888 server.3=域名3:2888:3888
上面我的域名設定是my.server1;my.server2;my.server3
#建立資料儲存目錄: mkdir -p /usr/local/zookeeper/zookeeper-3.4.5-cdh5.14.0/zkdatas
#建立myid:
cd/usr/local/zookeeper/zookeeper-3.4.5-cdh5.14.0/zkdatas
touch myid
並編輯myid內容為1
server02和server03為基礎
#分發到node02節點,並修改myid內容為2: scp -r zookeeper-3.4.5-cdh5.14.0/ server02:$PWD #分發到node03節點,並修改myid內容為3: scp -r zookeeper-3.4.5-cdh5.14.0/ server03:$PWD
分別在node01/node02/node03節點啟動/停止: /usr/local/zookeeper/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh start/stop
#檢視叢集狀態: /usr/local/zookeeper/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh status
如果在檢視狀態的時候出現如下錯誤:
出現這個問題有一下幾種可能性:
1.防火牆沒有關閉,就是對應的叢集埠沒有開放,所以各個節點之間沒辦法通訊(zoo.cfg中最後自己配置的內容(包括2888埠和3888埠)以及zookeeper自己的2181埠);
2.zookeeper中conf目錄下的zoo.cfg配置檔案有問題,檢視日誌dataLog檔案的目錄,以及data資料檔案的目錄是否正確;
3.myid檔案中的內容是否和zoo.cfg中配
開放上述埠:
再次測試:
下載kafka
#kafka官網:
http://kafka.apache.org/
http://kafka.apache.org/downloads
#分發到node02節點,並修改myid內容為2: