Flume生产环境配置

    科技2023-09-09  93

    1.解压flume到指定文件夹

    tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/apps

    2.启动HDFS集群

    start-dfs.sh

    3.写脚本模拟日志生产

    while true ; do echo $RANDOM >> a.log ; sleep 0.01 ; done //循环产生随机数写入到a.log中

    4.配置flume中agent的相关配置信息

    a1.sources = r1 --source的名字 a1.sinks = k1 --sink的名字 a1.channels = c1 --channel的名字 全都可以配置多个,用空格隔开 a1.sources.r1.channels = c1 --配置source将文件传到哪个channel,一个source可以连接多个channel a1.sources.r1.type = TAILDIR --配置source读取数据的方式 a1.sources.r1.filegroups = g1 --配置要监控的一批数据 a1.sources.r1.filegroups.g1 = /logdata/a.* --使用正则,指定监控的数据格式 a1.sources.r1.headers.g1.x = y --配置source的header,看具体需求指定 a1.sources.r1.fileHeader = true --配置文件的header a1.sources.r1.fileHeaderKey = filepath --指定k,v a1.sources.r1.interceptors = i1 --配置拦截器的名字为i1 a1.sources.r1.interceptors.i1.type = timestamp --配置具体的拦截器类型 a1.sources.r1.interceptors.i1.headerName = timestamp --配置拦截器中header的name a1.channels.c1.type = memory --配置channel的类型为 Memory Channel a1.channels.c1.capacity = 1000 --配置channel中event的最大容量为 1000 a1.channels.c1.transactionCapacity = 1000 --配置事务控制中每次读取或写出的最大数据容量 a1.sinks.k1.channel = c1 --配置sink从哪个channel获取evnet,一个sink只能连接一个channel a1.sinks.k1.type = hdfs --配置数据写入到hdfs中 a1.sinks.k1.hdfs.path = hdfs://linux01:9000/flumedata/%Y-%m-%d/%H --配置写入路径,并且指定数据命名规则 a1.sinks.k1.hdfs.filePrefix = doitedu-log- --指定文件名前缀 a1.sinks.k1.hdfs.fileSuffix = .log --指定文件名后缀 a1.sinks.k1.hdfs.rollSize = 268435456 --指定数据达到256M写出一次 a1.sinks.k1.hdfs.rollInterval = 120 --指定120秒写出一次 a1.sinks.k1.hdfs.rollCount = 0 --指定为0使得该参数失效 a1.sinks.k1.hdfs.batchSize = 1000 --指定每批数据写出大小 a1.sinks.k1.hdfs.fileType = CompressedStream --指定写出的文件类型 a1.sinks.k1.hdfs.codeC = snappy --指定写出文件的压缩方式 a1.sinks.k1.hdfs.useLocalTimeStamp = false --不使用本机的时间戳

    注意:

    上面许多配置都是根据实际生产情况中的日志采集情况灵活调整的,并不是所有都需要配置的TAILDIR是实际生产中最常用的source方式在hdfs中flume安装目录下新建agentconf文件夹,将上述配置数据写到taildir-m-hdfs.conf中,放到agentconflogdata是在hfds的 / 目录下新建的文件夹,用于存放测试数据

    5.启动flume

    #移动到flume安装目录下 bin/flume-ng agent -c ./conf -f ./agentconf/taildir-m-hdfs.conf -n a1

    参数解读:

    -c : flume自带的配置文件夹-f : 自己创建的agent配置文件路径-n : agent的name

    为了方便测试集群是否能正常启动,并且有错误时可得到错误日志信息,可添加-D参数,变为如下形式

    bin/flume-ng agent -c ./conf -f ./agentconf/taildir-m-hdfs.conf -n a1 -Dflume.root.logger=DEBUG,console

    6.到HDFS集群中查看,是否产生数据文件

    产生了对应小时的文件夹,并且其中存在采集的数据

     

     

    Processed: 0.026, SQL: 8