Flume Avro 兩臺機器間進行資料傳輸的方式
阿新 • • 發佈:2019-01-02
flume 通過avro方式在兩臺機器之間進行資料傳輸
比如要在192.168.17.18 上把資料傳到 192.168.17.17
1 首先要再兩臺機器上都部署 flume
2 在 17 flume下這樣配置 avro-flume.conf
agent3.channels = ch1 agent3.sources = avro-source1 agent3.sinks = log-sink1 agent3.sources.avro-source1.channels = ch1 agent3.sources.avro-source1.type = avro agent3.sources.avro-source1.bind = 0.0.0.0 agent3.sources.avro-source1.port = 12343 agent3.channels.ch1.type = memory agent3.sinks.log-sink1.channel = ch1 agent3.sinks.log-sink1.type = logger
3 在17上執行
bin/flume-ng agent --conf ./conf/ -f conf/avro-flume.conf -Dflume.root.logger=DEBUG,console -n agent3
在18上執行
bin/flume-ng avro-client -c ./conf -H 192.168.17.17 -p 12343 -F logs/test_data.log
這樣會把 18 上的logs/test_data.log 的資料直接在 17上打印出來
注: 18上不用配置任何conf檔案,只要在 conf目錄下留有 flume-env.sh 和 log4j.properties 就行了,18上用的只是flume的avro-client客戶端,也就是相當於模擬了一個avro客戶端,把18上的資料發到17上