文章作者郵箱:yugongshiye@sina.cn 地址:廣東惠州
▲ 本章節目的
? 掌握Kafka的架構;
? 掌握Kafka的Topic與Partition;
一、Kafka核心概念及操作
1. producer生產者,可以是一個測試線程,也可以是某種技術框架(比如flume)。
2. producer向kafka生產數據,必須指定向哪個主題去生產數據。
3. 主題topic,主題是由用戶(程序員)自己來創建的。
4. 創建主題的指令:
sh kafka-topics.sh --create ---zookeeper hadoop01:2181
--replication-factor 1 --partitions 1 --topic enbook
5. 查看kafka集群的所有主題:
sh kafka-topics.sh --list --zookeeper hadoop01:2181
6. 創建一個主題,需要指定:
①主題名
②主題的分區數量
③分區的副本數量
7. 主題的分區:本質上就是一個分區文件目錄。
分區目錄的命名規則:主題名 - 分區編號(分區編號從0開始)。
思考:kafka主題引入分區機制的作用?
回答:可以分布式的對一個主題的數據進行存儲和管理。
補充:主題的分區數量可以遠大于kafka broker 服務器數量。kafka底層盡可能確保分區目錄的負載均衡。比如:一個主題有10個分區,有3個broker服務器,則分區目錄的數量分配:3-3-4。
8. 啟動一個生產者線程。
sh kafka-console-producer.sh --broker-list
hadoop01:9092, hadoop02:9092, hadoop03:9092 --topic enbook
9. producer向kafka指定的主題生產數據,數據最終是存到了分區目錄下的log文件中。此外kafka底層會確保每個分區目錄的數據達到負載均衡的效果(輪詢發送給每個分區目錄)。
10. Kafka支持數據的容錯機制,即分區數據丟失后,可以恢復。通過副本冗余機制來實現的。即我們在創建主題時,可以指定每個分區有多個副本。
補充:如果出現kafka創建主題分區異常。