本次使用的是flume1.7.0版本
以及hadoop-2.7.7版本
flume下载地址如下:
链接:https://pan.baidu.com/s/193j6s-FNePUShCR5ZPNRWg
提取码:qwer
关于hadoop搭建请访问:Hadoop完全分布式集群搭建教程(一)
一、解压spark文件
本次依旧解压在opt文件夹中。
#解压
tar zxvf apache-flume-1.7.0-bin.tar.gz
#重命名
mv apache-flume-1.7.0-bin flume-1.7.0
二、修改flume-env.sh文件
#进入文件夹
cd /opt/flume-1.7.0/conf
#拷贝文件
cp flume-env.sh.template flume-env.sh
#修改文件
vi flume-env.sh
#配置JAVA_HOME路径
export JAVA_HOME=/opt/jdk1.8.0_161
三、配置环境变量
# 修改环境变量文件
vi /etc/profile
#加入环境变量配置
export FLUME_HOME=/opt/flume-1.7.0
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$PATH:$FLUME_HOME/bin
#刷新
source /etc/profile
四、测试
进入conf文件夹,创建文件hdfs-avro.conf
修改文件,添加以下内容
#配置Agent
a1.sources = r1
#数据沉淀,可以多个,中间用空格分隔
a1.sinks = c1
#传输管道一般只有一个,可以多个
a1.channels = c1
#配置source消息生产者
#exec可以通过制定的操作对日志进行读取,使用exec时需要指定xsheel命令,对日志进行读取
a1.sources.r1.type=exec
a1.sources.r1.command=tail -F /opt/flume-1.7.0/test/1.log
#配置channel,将buffer事件存放在内存中,相当于数据缓存区,接受source数据发送给sink
#传输管道的参数,类型时内存传输
a1.channels.c1.type=memory
#存储在通管中的最大事件数
a1.channels.c1.capactipy=1000
#收集端的sink会在收集到了1000条以后再去提交失误
a1.channels.c1.transactionCapcity=100
#配置sink接收器
#沉淀方式时控制台答应,还可以有其他方式,如上传到hdfs
a1.sinks.k1.type=hdfs
#设置hdfs接收器
a1.sinks.k1.hdfs.path=hdfs://master:9000/flume/testLog.log
#设置
a1.sinks.k1.hdfs.filePrefix=test
a1.sinks.k1.hdfs.fileType=DataStream
#把source和sink绑定在channel上
#指定传输管道
a1.sources.r1.channels=c1
#设置数据沉淀接受的管道
a1.sinks.k1.channel=c1
a1.sources.r1.command=tail -F /opt/flume-1.7.0/test/1.log
a1.sinks.k1.hdfs.path=hdfs://master:9000/flume/testLog.log
这两条需要按照自己的路径修改,并创建test文件和1.log文件用于测试
在master中启动
bin/flume-ng agent -c ./conf -f ./conf/hdfs-avro.conf -n a1 -Dflume.root.logger=INFO,console
./conf/hdfs-avro.conf这里根据自己的路径修改
在这会停住,不是卡住了,我们再打开一个master。
对1.log添加内容
echo 'hello'>>1.log
打开50090端口
会出现上传文件