下载flume的src包和bin包,解压
tar -zxvf flume-1.6.0-bin.tar.gz
tar -zxvf flume-1.6.0-src.tar.gz
将src的所有文件移动到bin下进行覆盖,重命名文件夹
cp -R apache-flume-1.6.0-src/* apache-flume-1.6.0-bin/
mv apache-flume-1.6.0-bin/ flume
配置环境变量,查看是否生效
export FLUME_HOME=/home/wyz/flume
export JAVA_HOME=/home/wyz/jdk1.8.0_65
export HADOOP_HOME=/home/wyz/hadoop-2.6.2
export PATH=$PATH:$FLUME_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile(这个是我自己配的全局变量,正常情况下是配在自己用户下的~/.bash_profile或者~/.bashrc)
cd flume/bin
./flume-ng version
编辑example配置文件
cd ../flume/conf
vim example
#agent1表示代理名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#配置source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/home/wyz/flume/aboutyunlog
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader = false
#配置sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://master01:9000/aboutyunlog
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/wyz/flume/aboutyun_tmp123
agent1.channels.channel1.dataDirs=/home/wyz/flume/aboutyun_tmp
建立example里标红的四个文件夹
chmod +x example
启动flume(启动flume之前需要启动hdfs)
cd ../bin
./flume-ng agent -n agent1 -c conf -f /home/wyz/flume/conf/example -Dflume.root.logger=DEBUG,console
启动另一个shell窗口
cd /home/wyz/flume/aboutyunlog
vim test(随便输入点东西,wq保存,之前的那个shell命令行会开始运行,自动将更改后的aboutyunlog中的东西上传到hdfs,然后可以进行查看)
hadoop fs -text /aboutyunlog/*
(文件上传成功后,在/home/wyz/flume/aboutyunlog文件夹下,会有相应的文件名.COMPLETED字样,在flume运行时,会多一个Application的进程,可以用jps查看)
这样就模仿成了一个flume收集日志的过程