一、kafka是配合zookeeper使用的所以我們在安裝的時候需要下載zookeeper和kafka。(版本根據需要自行配置,我這裏採用的是zookeeper3.4.14和kafka1.1.1)
1.zookeeper下載地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14
2.kafka下載地址:https://kafka.apache.org/downloads
二、這裏爲了方便我用一臺機器搭建一個集羣。
1.zookeeper的集羣搭建
1)zookeeper的放在/usr/local下面
2)解壓修改配置
- 解壓並修改目錄名稱爲zookeeper-1
- 複製conf中的zoo_sample.cfg爲zoo.cfg
- 修改zoo.cfg的配置
# 最小時間單元默認ms tickTime=2000 # 服務器等待follower啓動完成和數據同步的時間,tickTime的倍數 initLimit=10 # 心跳延時時間,tickTime的倍數 syncLimit=5 # 數據快照目錄 dataDir=/usr/local/zookeeper-1/data # 日誌 dataLogDir=/usr/local/zookeeper-1/logs # 端口 clientPort=2181 # 服務器集羣配置 server.0=192.168.5.100:2888:3888
server.1=192.168.5.100:2889:3889
- 加入myid(在/usr/local/zookeeper-1/data下面)
寫入標號0
3)啓動
/usr/local/zookeeper-1/bin/zkServer.sh start
4)其他節點複製zookeeper-1爲zookeeper-2,修改配置文件zoo.cfg爲
# 最小時間單元默認ms tickTime=2000 # 服務器等待follower啓動完成和數據同步的時間,tickTime的倍數 initLimit=10 # 心跳延時時間,tickTime的倍數 syncLimit=5 # 數據快照目錄 dataDir=/usr/local/zookeeper-2/data # 日誌 dataLogDir=/usr/local/zookeeper-2/logs # 端口 clientPort=2182 # 服務器集羣配置 server.0=192.168.5.100:2888:3888 server.1=192.168.5.100:2889:3889
5)修改節點2標號
6)啓動子節點
/usr/local/zookeeper-2/bin/zkServer.sh start
7)查看集羣狀態
2.搭建kafka集羣
1)kafka放入/usr/local下
2)解壓並修改配置
- 解壓修改名稱爲kafka-1
- 修改配置 (conf/server.properteis)
# 唯一標識 broker.id=0 listeners=PLAINTEXT://192.168.5.100:9092 # 請求的網絡線程數 num.network.threads=3 # 處理請求IO的數目 num.io.threads=8 # socket連接所用 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 # 數據存放路徑 log.dirs=/usr/local/kafka-1/kafka-logs # 默認的分區數量 num.partitions=1 # 日誌恢復的線程數 num.recovery.threads.per.data.dir=1 # topic的offset備份數量 offsets.topic.replication.factor=1 # 副本和ISR數 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 # 日誌文件默認保存時間 log.retention.hours=168 # topic 存在的分區的一個文件的最大的容量 log.segment.bytes=1073741824 # 檢查日誌文件刪除的間隔時間 log.retention.check.interval.ms=300000 # zookeeper的連接地址 zookeeper.connect=192.168.5.100:2181,192.168.5.100:2182 # 連接最大時間 zookeeper.connection.timeout.ms=6000 # 組內調整延時,避免頻繁rebalance group.initial.rebalance.delay.ms=0
- 守護進程啓動
/usr/local/kafka-1/bin/kafka-server-start.sh -daemon /usr/local/kafka-1/config/server.properties
3)複製kafka-1到kafka-2,並修改配置
# 唯一標識 broker.id=1 listeners=PLAINTEXT://192.168.5.100:9093 # 請求的網絡線程數 num.network.threads=3 # 處理請求IO的數目 num.io.threads=8 # socket連接所用 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 # 數據存放路徑 log.dirs=/usr/local/kafka-2/kafka-logs # 默認的分區數量 num.partitions=1 # 日誌恢復的線程數 num.recovery.threads.per.data.dir=1 # topic的offset備份數量 offsets.topic.replication.factor=1 # 副本和ISR數 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 # 日誌文件默認保存時間 log.retention.hours=168 # topic 存在的分區的一個文件的最大的容量 log.segment.bytes=1073741824 # 檢查日誌文件刪除的間隔時間 log.retention.check.interval.ms=300000 # zookeeper的連接地址 zookeeper.connect=192.168.5.100:2181,192.168.5.100:2182 # 連接最大時間 zookeeper.connection.timeout.ms=6000 # 組內調整延時,避免頻繁rebalance group.initial.rebalance.delay.ms=0
- 守護啓動
/usr/local/kafka-2/bin/kafka-server-start.sh -daemon /usr/local/kafka-2/config/server.properties
4)查看集羣狀態
可以看到2個節點都已經在zookeeper上面了,至此搭建kafka集羣完成。