目錄
Kafka 的搭建
Kafka : 去中心化架構
1、上傳、解壓、配置環境變量
上傳壓縮包到任意節點(這里選擇master)
cd /usr/local/module
tar -zxvf /usr/local/module/kafka_2.11-1.0.0.tgz -C /usr/local/soft/
//因為 Kafka : 去中心化架構 ,所以配置環境變量 - 所有節點都配置
vim /etc/profile
export KAFKA_HOME=/usr/local/soft/kafka_2.11-1.0.0
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
2、修改配置文件
vim /usr/local/soft/kafka_2.11-1.0.0/config/server.properties
# 需要修改幾個配置
1、broker.id=0 //每一個節點broker.id 要不一樣 master--0,node1--1,node2--2
2、zookeeper.connect=master:2181,node1:2181,node2:2181 //Zookeeper的地址,Kafka需要Zookeeper來管理元數據
3、log.dirs=/usr/local/soft/kafka_2.11-1.0.0/data //消息(數據)存放的位置
3、同步到所有節點
偽分布式不需要同步
scp -r /usr/local/soft/kafka_2.11-1.0.0 node1:`pwd`
scp -r /usr/local/soft/kafka_2.11-1.0.0 node2:`pwd`
同步到 node1、node2 之后不要忘記修改 broker.id
4、將master的環境變量同步到node1,node2
若想 node1,node2 的環境變量手動去配置,這一步不需要做
scp -r /etc/profile node1:/etc/
scp -r /etc/profile node2:/etc/
同步過去之后不要忘記 source 一下
5、啟動\停止 Kafka
1、需要先啟動zookeeper,需要在所有節點啟動
zkServer.sh start
查看狀態
zkServer.sh status
關閉
zkServer.sh stop
2、啟動broker,需要在所有節點啟動 -- 命令在Kafka的bin目錄下
kafka-server-start.sh -daemon /usr/local/soft/kafka_2.11-1.0.0/config/server.properties
啟動kafka需要指定的參數:
-daemon : 后台啟動
/usr/local/soft/kafka_2.11-1.0.0/config/server.properties : Kafka配置文件所在的位置
3、退出(有的時候殺不掉,比較惡心)
kill -9
6、驗證Kafka是否安裝成功(Kafka基本操作)
通過 jps 查看啟動成功的 kafka 進程,並不能代表Kafka安裝成功
隨便選擇一台節點操作
1、創建topic
kafka-topics.sh --create --zookeeper master:2181,node1:2181,node2:2181 --replication-factor 3 --partitions 3 --topic test_topic2
需要指定的參數:
--zookeeper : 指定Zookeeper的地址
--replication-factor : 每一個分區的副本數量
--partition : 分區數,根據數據量設置
--topic : 指定topic的名稱
2、查看topic描述信息
kafka-topics.sh --describe --zookeeper master:2181,node1:2181,node2:2181 --topic test_topic2
3、獲取所有topic
kafka-topics.sh --list --zookeeper master:2181,node1:2181,node2:2181
4、創建控制台生產者 -- Kafka提供的一個用於測試的工具,可以往topic中生產數據
kafka-console-producer.sh --broker-list master:9092,node1:9092,node2:9092 --topic test_topic2
需要指定的參數:
--broker-list : 指定Kafka節點的列表
--topic : 指定topic的名稱
5、創建控制台消費者 -- Kafka提供的一個用於測試的工具,可以消費topic中數據
kafka-console-consumer.sh --bootstrap-server master:9092,node1:9092,node2:9092 --from-beginning --topic test_topic2
需要指定的參數:
--bootstrap-server : 指定Kafka節點的列表,和 --broker-list 類似
--from-beginning : 從頭消費
若沒有創建 topic ,直接使用
kafka-console-producer.sh --broker-list master:9092,node1:9092,node2:9092 --topic test_topic2命令創建生產者也可以成功.
因為當這個 topic 不存在的時候,他會自動創建一個副本為1、分區為1的 topic
7、重置Kafka
假設安裝出了問題,可以重置
1、關閉kafka
kill -9
2、刪除 zk 元數據
zkCli.sh
刪除與kafka有關的所有信息
查看根目錄下 : ls /
刪除:rmr /config
刪除:rmr /brokers
3、刪除kafka的數據 所有節點都要刪除
rm -rf /usr/local/soft/kafka_2.11-1.0.0/data
4 重啟
kafka-server-start.sh -daemon /usr/local/soft/kafka_2.11-1.0.0/config/server.properties
