天天看點

flume連接配接hdfs和kafka

flume連接配接hdfs和kafka練習

一、flume連接配接hdfs情況

選型是source端使用taildir

channel端使用file channel

sink端使用hdfs

腳本檔案如圖:

flume連接配接hdfs和kafka

運作flume-ng,如下:

flume連接配接hdfs和kafka

往flume 監控的檔案taildir_test.data寫入資料:

flume連接配接hdfs和kafka

等待控制台的輸出指令:

flume連接配接hdfs和kafka

登入HDFS檢視,發現已經寫入:

flume連接配接hdfs和kafka

肯定有人要問了:memory channel這麼好用 為什麼不用啊,我的回答是:我就是練習使用file channel

二、flume連接配接kafka

類型選擇:flume source端使用 taildir

channel端使用file channel

sink端使用kafka

腳本檔案如下:

flume連接配接hdfs和kafka

我的叢集是三台機器,node02,node03,node04都已經部署好了zookeeper,接着三個節點啟動kafka服務:

./kafka-server-start.sh …/config/server.properties

接着在node03上啟動消費者:

./kafka-console-consumer.sh --bootstrap-server node02:9091 node03:9092 \ node04:9092 --topic flume_topic --from-beginning

啟動flume-ng :

./flume-ng agent --name a1 --conf …/conf --conf-file …/conf/taildir_fileM_kafka.conf \ -Dflume.root.logger=INFO,console

接下來就是往flume監控的檔案下寫入資料:

flume連接配接hdfs和kafka
flume連接配接hdfs和kafka

接着就能到node03的控制台看到輸出的資料了:

flume連接配接hdfs和kafka

思考

我在create topic的時候,遇到這樣的一個錯誤:

Error while executing topic command : replication factor: 1 larger than available brokers: 0

網上查了很多,衆說紛纭,看得我眼花缭亂,好多粘貼複制的都說是kafka服務沒起來,可是我的早就起來的。這就很神奇了,解決過程如下:

我建立topic的指令是:

./kafka-topics.sh --create --zookeeper node02:2181/kafka,node03:2181/kafka, node04:2181/kafka --partitions 3 --replication-factor 3 --topic kafka_topic

我跑去官網看了看。它是這樣的:

flume連接配接hdfs和kafka

這我就郁悶了,後來我試着這樣改:

/kafka-topics.sh --create --zookeeper node02:2181/kafka node03:2181/kafka node04:2181/kafka --partitions 3 --replication-factor 3 --topic kafka_topic

發現不同了沒有?把逗号去掉,這樣就成功建立了topic

寫在後面的話:還是要多練習才能完全掌握知識

繼續閱讀