CentOS 7 配置hadoop(六) 配置flume(伪分布)

章节: 

  第一章节:CentOS 7 配置hadoop(一) 安装虚拟机(伪分布)

  第二章节:CentOS 7 配置hadoop(二) 配置hdfs(伪分布) 

  第三章节:CentOS 7 配置hadoop(三) 配置hbase(伪分布) 

  第四章节:CentOS 7 配置hadoop(四) 配置hive(伪分布)  

       第五章节:CentOS 7 配置hadoop(五) 配置sqoop(伪分布) 

  第六章节:CentOS 7 配置hadoop(六) 配置flume(伪分布)  

  

配置Flume(数据采集)

  1.上传Flume压缩包

  

   2.解压 压缩包

    tar -xzvf apache-flume-1.6.0-bin.tar.gz

  3.进入到flume/conf 将 flume-env.sh.templ 复制为flume-env.sh

    cd apache-flume-1.6.0-bin/conf/

    cp flume-env.sh.template flume-env.sh

    进入 flume-env.sh将export JAVA_OPTS 那行的注释去掉

    

  4.进到flume目录下 bin 目录 创建 dir-hdfs.conf 文件 (touch dir-hdfs.conf), 文件内容是下方的代码

#定义三大组件的名称
ag1.sources = source1
ag1.sinks = sink1
ag1.channels = channel1

# 配置source组件
ag1.sources.source1.type = spooldir
ag1.sources.source1.spoolDir = /root/data/log
ag1.sources.source1.fileSuffix=.FINISHED
ag1.sources.source1.inputCharset=utf-8
ag1.sources.source1.deserializer.maxLineLength=5120

# 配置sink组件
ag1.sinks.sink1.type = hdfs
ag1.sinks.sink1.hdfs.path =hdfs://master/access_log/%y-%m-%d/%H-%M
ag1.sinks.sink1.hdfs.filePrefix = app_log
ag1.sinks.sink1.hdfs.fileSuffix = .log
ag1.sinks.sink1.hdfs.batchSize= 100
ag1.sinks.sink1.hdfs.fileType = DataStream
ag1.sinks.sink1.hdfs.writeFormat =Text

## roll:滚动切换:控制写文件的切换规则
 ## 按文件体积(字节)来切   
ag1.sinks.sink1.hdfs.rollSize = 512000   
 ## 按event条数切
ag1.sinks.sink1.hdfs.rollCount = 1000000 
 ## 按时间间隔切换文件
ag1.sinks.sink1.hdfs.rollInterval = 60   

## 控制生成目录的规则(round回滚)
ag1.sinks.sink1.hdfs.round = true
ag1.sinks.sink1.hdfs.roundValue = 10
ag1.sinks.sink1.hdfs.roundUnit = minute
ag1.sinks.sink1.hdfs.useLocalTimeStamp = true

# channel组件配置
ag1.channels.channel1.type = memory
 ## event条数
ag1.channels.channel1.capacity = 500000  
##flume事务控制所需要的缓存容量600条event
ag1.channels.channel1.transactionCapacity = 600  

# 绑定source、channel和sink之间的连接
ag1.sources.source1.channels = channel1
ag1.sinks.sink1.channel = channel1

  上方两个地方需要注意 :第一个是我们本地要采集的信息存放地址

                 第二个是我们信息输出的hdfs的地址   (ip的地方写上你的主机名)

              添加内容时记得把注解去掉

  5.创建 源目录log 给与777权限 并且在log目录下存放需要采集的数据 a.log b.log c.log  (创建的地址就是你的第一个修改的采集信息存放的地址)

  创建 log文件夹   cd /root/data/    mkdir log 

  

   给log赋予权限 chmod 777 log

  

   在log文件夹同级目录创建 a.txt  ,内容 hello world 

   

touch a.txt
echo hello world > a.txt
cat a.txt

  6.启动Flume 命令   在flume的目录下执行 下面命令

    bin/flume-ng agent -c conf/ -f dir-hdfs.conf -n ag1 -Dflume.root.logger=INFO,console

     

   这是我们在开一个窗口  

   在右边进入我们log文件夹的同级目录 ,把我们创建的a.txt 移动到log文件夹内。在左边的变化!!!!

      

  可在、/root/data/log 中查看他的变化,和网址上的access_log文件夹里面的变化

  Flume配置完成

原文地址:https://www.cnblogs.com/lihui123/p/14152135.html