天天看點

單節點部署三台zookeeper和三台kafka

一台機器部署三台zookeeper:同理kafka也可以這樣部署

解壓複制三個目錄,分别為 zookeeper,zookeeper1,zookeeper2
[[email protected] app]$ ll
lrwxrwxrwx.  1 hadoop hadoop   25 Sep  1 03:37 zookeeper -> zookeeper-3.4.5-cdh5.7.0/
drwxr-xr-x. 14 hadoop hadoop 4096 Oct 29 23:21 zookeeper1
drwxr-xr-x. 14 hadoop hadoop 4096 Oct 29 23:21 zookeeper2
drwxr-xr-x. 14 hadoop hadoop 4096 Oct 29 22:59 zookeeper-3.4.5-cdh5.7.0
[[email protected] app]$ 

修改配置檔案:dataDir需要不一樣,每個server的端口号需要不一樣,clientPort需要不一樣
第一台:
[[email protected] zookeeper]$ cp ./conf/zoo_sample.cfg zoo.cfg
[[email protected] zookeeper]$ vi ./conf/zoo.cfg 
##該目錄需手動建立
dataDir=/home/hadoop/data/zookeeper
server.1=hadoop001:2888:3888
server.2=hadoop001:2889:3889
server.3=hadoop001:2890:3890
clientPort=2181

第二台:
[[email protected] zookeeper1]$ cp ./conf/zoo_sample.cfg zoo.cfg
[[email protected] zookeeper1]$ vi ./conf/zoo.cfg 
##該目錄需手動建立
dataDir=/home/hadoop/data/zookeeper1
server.1=hadoop001:2888:3888
server.2=hadoop001:2889:3889
server.3=hadoop001:2890:3890
clientPort=2182

第三台:
[[email protected] zookeeper2]$ cp ./conf/zoo_sample.cfg zoo.cfg
[[email protected] zookeeper2]$ vi ./conf/zoo.cfg 
##該目錄需手動建立
dataDir=/home/hadoop/data/zookeeper2
server.1=hadoop001:2888:3888
server.2=hadoop001:2889:3889
server.3=hadoop001:2890:3890
clientPort=2183


建立dataDir目錄:
[[email protected] zookeeper]$ mkdir /home/hadoop/data/zookeeper
[[email protected] zookeeper1]$ mkdir /home/hadoop/data/zookeeper1
[[email protected] zookeeper2]$ mkdir /home/hadoop/data/zookeeper2

建立myid檔案到dataDir目錄下:
[[email protected] zookeeper]$ echo 1 >  /home/hadoop/data/zookeeper/myid
[[email protected] zookeeper1]$ echo 2 >  /home/hadoop/data/zookeeper1/myid
[[email protected] zookeeper2]$ echo 3 >  /home/hadoop/data/zookeeper2/myid

啟動:
[[email protected] zookeeper]$ ./bin/zkServer.sh start
[[email protected] zookeeper1]$ ./bin/zkServer.sh start
[[email protected] zookeeper2]$ ./bin/zkServer.sh start




檢視狀态:
[[email protected] zookeeper]$ ./bin/zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/app/zookeeper/bin/../conf/zoo.cfg
Mode: follower


[[email protected] zookeeper1]$ ./bin/zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/app/zookeeper1/bin/../conf/zoo.cfg
Mode: leader



[[email protected] zookeeper2]$ ./bin/zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/app/zookeeper2/bin/../conf/zoo.cfg
Mode: follower

zookeeper的三種端口号:

  2181:用戶端連接配接Zookeeper叢集使用的監聽端口号

  3888:選舉leader使用

  2888:叢集内機器通訊使用(Leader和Follower之間資料同步使用的端口号,Leader監聽此端口)

-------------------------------------------------
kafka部署:跟zookeeper不太一樣的是不需要三個kafka目錄,隻需要配置三個不同的配置檔案,在啟動的時候指定不同的配置檔案即可
[[email protected] config]$ cp server.properties server1.properties 
[[email protected] config]$ cp server.properties server2.properties 

分别修改三個配置檔案:
第一台:
[[email protected] kafka]$ vi config/server.properties 

broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/home/hadoop/log/kafka-logs
zookeeper.connect=hadoop001:2181,hadoop001:2182,hadoop001:2183/kafka


第二台:
[[email protected] kafka]$ vi config/server1.properties 

broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/home/hadoop/log/kafka-logs1
zookeeper.connect=hadoop001:2181,hadoop001:2182,hadoop001:2183/kafka

第三台:
[[email protected] kafka]$ vi config/server.properties 

broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/home/hadoop/log/kafka-logs2
zookeeper.connect=hadoop001:2181,hadoop001:2182,hadoop001:2183/kafka


啟動指令:
啟動腳本為 bin/kafka-server-start.sh 檢視啟動指令
USAGE: ./kafka-server-start.sh [-daemon] server.properties [--override property=value]*
啟動三台kafka:
[[email protected] kafka]$ ./bin/kafka-server-start.sh -daemon ./config/server.properties 
[[email protected] kafka]$ ./bin/kafka-server-start.sh -daemon ./config/server1.properties 
[[email protected] kafka]$ ./bin/kafka-server-start.sh -daemon ./config/server2.properties 

僅供測試使用