Kafka傳送訊息到HDFS

2021-06-21 13:45:57 字數 758 閱讀 9219

本文採用的是kafka0.7.2,安裝好kafka後在kafka的contrib目錄下有關於kafka與hadoop的一系列檔案,我們可以使用hadoop-consumer目錄下的指令碼及配置檔案將kafka中某topic的資訊傳送到hdfs中。

1.修改test目錄下的test.properties的配置檔案。

kafka.etl.topic:topic的名稱

hdfs.default.classpath.dir:hdfs的類路徑

input:hdfs的輸入路徑

output:hdfs的輸出路徑

2.生成topic的offset

執行命令./run-class.sh kafka.etl.impl.datagenerator test/test.properties,會在hdfs的/tmp/kafka/data目錄下生成.dat的檔案

3.複製kakfa的相關jar到hdfs的類路徑

執行命令./copy-jars.sh /usr/lib/hadoop/lib

4.執行hadoop job

./run-class.sh kafka.etl.impl.******kafkaetljob test/test.properties,該job會將kafka中test-topic該話題的訊息寫入hdfs中。

在hdfs的/tmp/kafka/output目錄中我們會看到寫入的訊息。

Kafka 訊息傳送

建立乙個kafkaprodecer物件,傳入上面建立的properties物件 kafkaproducerproducer new kafkaproducer mykafkaprops 使用prodecerrecord string topic,string key,string value 建構函...

kafka訊息傳送模式

在kafka 0.8.2之後,producer不再區分同步 sync 和非同步方式 async 所有的請求以非同步方式傳送,這樣提公升了客戶端效率。producer請求會返回乙個應答物件,包括偏移量或者錯誤信。這種非同步方地批量的傳送訊息到kafka broker節點,因而可以減少server端資源...

Kafka 傳送訊息流程

客戶端的幾個元件 一條訊息首先需要確定要被儲存到那個 partition 對應的雙端佇列上 其次,儲存訊息的雙端佇列是以批的維度儲存的,即 n 條訊息組成一批,一批訊息最多儲存 n 條,超過後則新建乙個組來儲存新訊息 其次,新來的訊息總是從左側寫入,即越靠左側的訊息產生的時間越晚 最後,只有當一批訊...