一:簡介
一種分布式的基於發布/訂閱的訊息系統
二:場景
常用組合:常用 flume (收集資料) --> kafka(把收集來的資料儲存到kafka) --> spark streaming(使用spark streaming 從kafka中取資料)
運用場景:1.系統之間的解耦合 2.峰值壓力緩衝 3.非同步通訊
三:特點
1.訊息持久化 2.高吞吐量 3.分布式 4.多客戶端支援 5. 實時性
基本元件:
1.broker :負責資料的獨寫請求,儲存訊息;
2.product :往kafka中生產資料 ;
3.consumer : 從kafka中取資料;
4.topic : 用來資料的分類 ,不同消費者去指定的topic中讀,不同的生產者往不同的topic中寫 ;
5.partition :乙個 topic 分為多個partition, 在topic的基礎上進一步分割槽,在partition中每個資料都有乙個offset記錄位置資訊 producer 往partition中寫資料,並給每乙個資料中設定offset記錄位置 (順序是強有序的) 乙個consumer 一次只能讀乙個partition中的資料
6.zookeeper負載均衡:將topic分成多個分割槽,每個broker儲存乙個或多個partition(用來協調broker)
四:kafka 環境搭建
(1)解壓
(2)在conf下 把zoo_sample.cfg 檔案改名為 zoo.cfg
(3)vim zoo.cfg 修改以下配置
clientport=2181
server.1=127.0.0.1:12888:1288
server.2=127.0.0.1:13888:1388
server.3=127.0.0.1:14888:1488
datadir=../zkdata
datalogdir=../zklog
(4)在zookeeper-3.4.14\zkdata 下建立myid檔案
內容為1
(5)修改每乙個集群下的zoo.cfg檔案 並且建立myid檔案
(1)解壓
(2)修改 config/server.properties 檔案 內容如下
三個集群分別為
broker.id=0 broker.id=1 broker.id=2
port=9092 port=9093 port=9094
log.dirs=/tmp/kafka-logs log.dirs=/tmp/kafka-logs-1 log.dirs=/tmp/kafka-logs-2
五:kafka的命令
啟動kafka:
kafka-server-start.bat ../../config/server.properties
建立topic:
kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
檢視topic:
kafka-topics.bat --list --zookeeper localhost:2181
傳送訊息:
kafka-console-producer.bat --broker-list localhost:9092 --topic test
接收訊息:
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test --from-beginning
大資料 kafka學習基礎篇
一.訊息佇列的兩個模式和特點 兩個模式 點對點模式 一對一,消費者主動拉取資料,訊息收到後訊息清楚 發布 訂閱模式 一對多,資料生產後,推送給所有訂閱者 8大特點 1.解耦 2.冗餘 3.擴充套件性 4.靈活性 峰值處理能力 5.可恢復性 6.順序保證 7.緩衝 8.非同步通訊 佇列 先進先出 棧 ...
大資料面試之Kafka
1 producer 訊息的生產者,主要是用於生產訊息的。主要是接入一些外部的資料來源,從外部獲取資料,比如說我們可以從flume獲取資料,還可以通過ftp傳入資料等,還可以通過kafka的api生產資料,通過push的方式,主動的將資料推送到kafka的topic當中去 2 topic 主題,裡面...
大資料開發之kafka安裝
安裝kafka前需要安裝zookeeper,參考 二 解壓安裝包 root hlh001 software tar zxvf kafka 2.11 0.11.0.0.tgz c opt module 三 修改解壓後的名稱 root hlh001 module mv kafka 2.11 0.11.0...