kafka 叢集部署 多機多broker模式
環境IP :
172.16.1.35 zookeeper kafka
172.16.1.36 zookeeper kafka
172.16.1.37 zookeeper kafka
開放埠 2181 2888 3888 9092
編輯 server.properties 檔案 (以下為 172.16.1.35 的配置)
#在預設的配置上,我只修改了4個地方。broker.id = 三個主機172.16.1.35,172.16.1.36,172.16.1.37分別對應id為1,2,3
broker.id=1
advertised.host.name=172.16.1.35 配置為連線IP 否則會獲取本地網路卡IP
log.dirs=/opt/local/kafka/logs
zookeeper.connect=172.16.1.35:2181,172.16.1.36:2181,172.16.1.37:2181
---------------------------------------------------------------------
非物理網路卡,繫結IP 需要配置為 127.0.0.1 , 否則獲取到的IP為 其他繫結IP
如:zookeeper.connect=127.0.0.1:2181,172.16.1.36:2181,172.16.1.37:2181
編輯 consumer.properties 檔案
配置 zookeeper.connect= 資訊
如果 kafka 與 zookeeper 在同一臺機器上,也可以不需要配置。
編輯 producer.properties 檔案
編輯 metadata.broker.list= 資訊
配置為 多 broker 。
如 kafka_1:9092,kafka_2:9092,kafka_3:9092
編輯 zookeeper.properties 檔案
initLimit=5
syncLimit=2
server.1=0.0.0.0:2888:3888
server.2=172.16.1.36:2888:3888
server.3=172.16.1.37:2888:3888
dataDir=/tmp/zookeeper
---------------------------------------------------------------------
非物理網路卡,繫結IP 需要配置為 0.0.0.0 , 否則獲取到的IP為 其他繫結IP
如果
broker.id=1
-------------------------------------
server.1=0.0.0.0:2888:3888
server.2=172.16.1.36:2888:3888
server.3=172.16.1.37:2888:3888
-------------------------------------
broker.id=2
-------------------------------------
server.1=172.16.1.35:2888:3888
server.2=0.0.0.0:2888:3888
server.3=172.16.1.37:2888:3888
-------------------------------------
# initLimit:LF初始通訊時限
叢集中的follower伺服器(F)與leader伺服器(L)之間初始連線時能容忍的最多心跳數(tickTime的數量)。
# syncLimit:LF同步通訊時限
叢集中的follower伺服器與leader伺服器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。
# server.N=YYY:A:B
伺服器名稱與地址:叢集資訊(伺服器編號,伺服器地址,LF通訊埠,選舉埠)
#分別將1,2,3寫入三個主機的myid檔案
echo "1" >> /tmp/zookeeper/myid
# 分別啟動三個伺服器中的 zookeeper 和 kafka server
/opt/local/kafka/bin/zookeeper-server-start.sh -daemon /opt/local/kafka/config/zookeeper.properties
/opt/local/kafka/bin/kafka-server-start.sh -daemon /opt/local/kafka/config/server.properties
kafka 命令使用
1、建立主題(Topic)
【命令方式】:bin/kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name --partitions 20 --replication-factor 3 --config x=y
2、檢視所有主題
【命令方式】:bin/kafka-topics.sh --list --zookeeper localhost:2181
3、檢視指定主題:
【命令方式】:bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic 主題名
4、修改主題:
【命令方式】:bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic 主題名 --deleteConfig x
5 檢視主題分割槽
./kafka-topics.sh --describe --zookeeper localhost