flume連接配接hdfs和kafka練習
一、flume連接配接hdfs情況
選型是source端使用taildir
channel端使用file channel
sink端使用hdfs
腳本檔案如圖:

運作flume-ng,如下:
往flume 監控的檔案taildir_test.data寫入資料:
等待控制台的輸出指令:
登入HDFS檢視,發現已經寫入:
肯定有人要問了:memory channel這麼好用 為什麼不用啊,我的回答是:我就是練習使用file channel
二、flume連接配接kafka
類型選擇:flume source端使用 taildir
channel端使用file channel
sink端使用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監控的檔案下寫入資料:
接着就能到node03的控制台看到輸出的資料了:
思考
我在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
我跑去官網看了看。它是這樣的:
這我就郁悶了,後來我試着這樣改:
/kafka-topics.sh --create --zookeeper node02:2181/kafka node03:2181/kafka node04:2181/kafka --partitions 3 --replication-factor 3 --topic kafka_topic
發現不同了沒有?把逗号去掉,這樣就成功建立了topic
寫在後面的話:還是要多練習才能完全掌握知識