假設叢集中有三台機器, ip位址分别為: 10.101.139.1, 10.101.139.2, 10.101.139.3.
zookeeper叢集: 10.101.139.1:2181, 10.101.139.2:2181, 10.101.139.3:2181.
kafka broker叢集: 10.101.139.1:9092, 10.101.139.2:9092, 10.101.139.3:9092.
1 修改zookeeper的配置檔案,在$ZOOKEEPER_HOME/conf/下的zoo.cfg.(每台機器都需要添加)
在檔案末尾添加:
這裡簡單說明一下:server.A=B:C:D
A是一個數字,表示這個是第幾号伺服器,B是這個伺服器的ip位址
C第一個端口用來叢集成員的資訊交換,表示的是這個伺服器與叢集中的Leader伺服器交換資訊的端口
D是在leader挂掉時專門用來進行選舉leader所用
2 建立server id辨別
在zoo.cfg下同時還需要配置(單機版時就已經設定,在配置叢集時就可不必在設定)
在上面可以看到有個dataDir的配置,在配置叢集時需要在dataDir配置的/tmp/zookeeper/data下建立一個名稱為”myid”的檔案,檔案裡填上serverid号。
3 啟動各個節點的zookeeper: bin/zkServer.sh start
4 通過bin/zkServer.sh status檢視各個節點的狀态。
1 需要修改$KAFKA_HOME/config下的server.properties檔案
修改broker.id的值,比如10.101.139.1設定為0,10.101.139.2設定為1,依次類推。(每台kafka broker server必須唯一)
最好将host.name設定為本機的ip位址而不是預設的localhost.
修改zookeeper.connect為zookeeper叢集的ip,本例中可以這樣設定:
zookeeper.connect=10.101.139.1:2181,10.101.139.2:2181,10.101.139.3:2181
2 在每台機器上啟動kafka
bin/kafka-server-start.sh config/server.properties