测试:flume监视本地数据源上的数据变化,写入到hdfs中。
flume版本:1.6.0
hadoop版本:2.7.1
安装过程:
(1)解压,配置 /etc/profile
并使之生效。
(2)配置 $FLUME_HOME/conf/flume-env.sh
:
export JAVA_HOME=/opt/jdk1.7.0_80
(3)配置 $FLUME_HOME/conf/test-conf
:
#agent1表示代理名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#配置source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/home/hadoop/data
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader=false
#配置sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://master:9000/flume/test
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=4
agent1.sinks.sink1.channel=channel1
#配置channel1
agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointDir=/home/hadoop/tmp/flume/data_tmp123
agent1.channels.channel1.dataDirs=/home/hadoop/tmp/flume/data_tmp
(4)按照上面的配置文件 mkdir
相应本地文件系统的目录和HDFS上的目录。
(5)启动服务:
flume-ng agent -n agent1 -c apache-flume-1.6.0-bin/conf/ -f apache-flume-1.6.0-bin/conf/test-conf -Dflume.root.logger=DEBUG,console
(6)往监听目录写入数据,查看HDFS上相应的目录。测试完成。
注意问题:
flume部署在master节点上,如果部署在slave节点上,需要让slave节点也知道 $HADOOP_HOME
的位置,因为flume需要用到其下的jar包。