1. 程式人生 > >Flume Avro 兩臺機器間進行資料傳輸的方式

Flume Avro 兩臺機器間進行資料傳輸的方式

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上