Kafka與Logstash的資料採集對接 —— 看圖說話,從執行機制到部署
http://www.cnblogs.com/xing901022/p/5738485.html
基於Logstash跑通Kafka還是需要注意很多東西,最重要的就是理解Kafka的原理。
Logstash工作原理
由於Kafka採用解耦的設計思想,並非原始的釋出訂閱,生產者負責產生訊息,直接推送給消費者。而是在中間加入持久化層——broker,生產者把資料存放在broker中,消費者從broker中取資料。這樣就帶來了幾個好處:
- 1 生產者的負載與消費者的負載解耦
- 2 消費者按照自己的能力fetch資料
- 3 消費者可以自定義消費的數量
另外,由於broker採用了主題topic-->分割槽的思想,使得某個分割槽內部的順序可以保證有序性,但是分割槽間的資料不保證有序性。這樣,消費者可以以分割槽為單位,自定義讀取的位置——offset。
Kafka採用zookeeper作為管理,記錄了producer到broker的資訊,以及consumer與broker中partition的對應關係。因此,生產者可以直接把資料傳遞給broker,broker通過zookeeper進行leader-->followers的選舉管理;消費者通過zookeeper儲存讀取的位置offset以及讀取的topic的partition分割槽資訊。
由於上面的架構設計,使得生產者與broker相連;消費者與zookeeper相連。有了這樣的對應關係,就容易部署logstash-->kafka-->logstash的方案了。
接下來,按照下面的步驟就可以實現logstash與kafka的對接了。
啟動kafka
啟動zookeeper:
$zookeeper/bin/zkServer.sh start
啟動kafka:
$kafka/bin/kafka-server-start.sh $kafka/config/server.properties &
建立主題
建立主題:
$kafka/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --create --topic hello --replication-factor 1 --partitions 1
檢視主題:
$kafka/bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe
測試環境
執行生產者指令碼:
$kafka/bin/kafka-console-producer.sh --broker-list 10.0.67.101:9092 --topic hello
執行消費者指令碼,檢視是否寫入:
$kafka/bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --from-beginning --topic hello
輸入測試
input{
stdin{}
}
output{
kafka{
topic_id => "hello"
bootstrap_servers => "192.168.0.4:9092" # kafka的地址
batch_size => 5
}
stdout{
codec => rubydebug
}
}
讀取測試
logstash配置檔案:
input{
kafka {
codec => "plain"
group_id => "logstash1"
auto_offset_reset => "smallest"
reset_beginning => true
topic_id => "hello"
#white_list => ["hello"]
#black_list => nil
zk_connect => "192.168.0.5:2181" # zookeeper的地址
}
}
output{
stdout{
codec => rubydebug
}
}
相關文章
- UAV心跳機制與容器、程式資料採集
- 多執行緒資料採集執行緒
- 資料採集與分析的那些事——從資料埋點到AB測試
- 從template到DOM(Vue.js原始碼角度看內部執行機制)Vue.js原始碼
- 地圖資料採集,包括百度地圖採集,高德地圖採集,360地圖採集地圖
- 業務場景下資料採集機制和策略
- 用 logstash 從 kafka 讀取資料寫入 Elasticsearch(qbit)KafkaElasticsearch
- Js執行機制圖JS
- 資料處理,會“說話”的大機器——資料資訊圖
- 如何實現智慧製造工業裝置資料採集與MES系統對接
- 深入js基礎:從記憶體機制、解析機制到執行機制(長文預警)JS記憶體
- 圖解JS執行機制圖解JS
- JavaScript執行緒機制與事件機制JavaScript執行緒事件
- Nginx 與 PHP 的執行機制NginxPHP
- 工業網際網路平臺實現裝置資料採集與MES系統全面對接
- 主從庫與切片叢集機制
- 資料採集元件:Flume基礎用法和Kafka整合元件Kafka
- ArkUI中的執行緒和看門狗機制UI執行緒
- 《Learning ELK Stack》3 使用Logstash採集、解析和轉換資料
- [英語流利說]管理資料採集需求~在英語流利說,我們這樣管理資料採集需求...
- 主機日常效能資料採集
- 【資料分析】抖音商家電話採集軟體資料分析
- 從setTimeout理解JS執行機制JS
- 從setTimeout談JavaScript執行機制JavaScript
- 大資料工程師入門系列—常用資料採集工具(Flume、Logstash 和 Fluentd)大資料工程師
- 對執行中的Mysql資料庫建立從庫MySql資料庫
- python對英雄皮膚進行圖片採集~Python
- 實時計算框架:Flink叢集搭建與執行機制框架
- 金蝶雲星空與吉客雲的採購入庫資料無縫對接方案
- 大資料如何採集資料?大資料的資料從何而來?大資料
- Kafka消費與心跳機制Kafka
- React的useEffect與useLayoutEffect執行機制剖析React
- PHP底層的執行機制與原理PHP
- PHP 底層的執行機制與原理PHP
- kafka.network.AbstractServerThread中的執行緒協作機制KafkaServerthread執行緒
- Golddata如何採集需要登入/會話的網站資料?Go會話網站
- Python對系統資料進行採集監控——psutilPython
- 效能優化資料庫篇-從單機到叢集優化資料庫