flume是一个分布式的海量数据收集框架。
在hadoop0上部署一个flume agent
1.把apache-flume-1.4.0-bin.tar.gz和apache-flume-1.4.0-src.tar.gz在hadoop0上解压缩
2.把解压缩后的apache-flume-1.4.0-src文件夹中的内容全部复制到apache-flume-1.4.0-bin文件夹中。
3.修改conf目录下的两个文件的名称,一个是flume-env.sh,一个是flume-conf.properties
其中在flume-env.sh中设置了JAVA_HOME的值
4.示例:把磁盘文件夹中文件通过flume上传到hdfs中
4.1 在conf目录下创建一个文件,叫做test.conf,文件内容如下:
#配置代理
#a1是一个代理名称,s1是source的名称,sink1是sink的名称,c1是channel的名称
a1.sources = s1
a1.sinks = sink1
a1.channels = c1
#配置一个专用于从文件夹中读取数据的source
a1.sources.s1.type =spooldir
a1.sources.s1.spoolDir =/apache_logs #值apache_logs表示数据文件的目录
a1.sources.s1.fileSuffix=.abc #值.abc表示数据文件被处理完后,被重命名的文件名后缀
a1.sources.s1.channels =c1 #值c1表示source接收数据后送到的channel的名称
#配置一个专用于把输入写入到hdfs的sink
a1.sinks.sink1.type= hdfs
a1.sinks.sink1.hdfs.path=hdfs://hadoop0:9000/apache_logs #值表示目的地
a1.sinks.sink1.hdfs.fileType=DataStream #值DataStream表示文件类型,是不经过压缩的
a1.sinks.sink1.hdfs.writeFormat=Text #值表示写出文件原内容
a1.sinks.sink1.channel =c1 #值c1表示sink处理数据的来源
#配置一个内存中处理的channel
a1.channels.c1.type= memory
a1.channels.c1.capacity= 1000
a1.channels.c1.transactionCapacity= 100
===================================================================================================
启动flume的命令是 bin/flume-ng agent -n a1 -cconf -f conf/test.conf -Dflume.root.logger=DEBUG,console