案例二flume自定义拦截器_第1页
案例二flume自定义拦截器_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.背景介绍Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume 有各种自带的器,比如:Timest通过使用不同的erceptor、Hosterceptor、RegexExtractorerceptor 等,器,实现不同的功能。但是以上的这些器,不能改变原有日志数据的内容或者对日志信息添加一定的处理逻辑,当一条日志信息有几十个甚至上百个字段的时候,在传统的Flume 处理下,收集到的日志还是会有对

2、应这么多的字段,也不能对你想要的字段进行对应的处理。2.自定义器根据实际业务的需求,为了更好的满足数据在应用层的处理,通过自定义 Flume器,过滤掉不需要的字段,并对指定字段加理,将源数据进行预处理。减少了数据的传输量,降低了的开销。3.实现本技术方案包括二部分:编写 java 代码,自定义器;内容包括:1.2.定义一个类 CustomParametererceptor 实现erceptor 接口。在 CustomParametererceptor 类中定义变量,这些变量是需要到Flume 的配置文件中进行配置使用的。每一行字段间的分隔符(fields_separator)、通过分隔符分隔后

3、,所需要列字段的下标(indexs)、多个下标使用的分隔符(indexs_separator)、多个下标使用的分隔符(indexs_separator)。3.添加 CustomParametererceptor 的有参构造方法。并对相应的变量进行处理。将配置文件中传过来的 unicode 编码进行转换为字符串。4.ercept()方法,一个是单个处理的,一个是写具体的要处理的逻辑批量处理。5.接口中定义了一个接口Builder,在configure 方法中,进行一些参数配置。并给出,在 flume 的 conf 中没配置一些参数时,给出其默认值。通过其 builder 方法,返回一个 Cust

4、omParameter对象。erceptor6.7.定义一个静态类,类中封装 MD5 加密方法通过以上步骤,自定义器的代码开发已完成,然后打包成jar, 放到 Flume 的根目录下的 lib 中 修改 Flume 的配置信息新增配置文件 spool- a1.channels = c1erceptor-hdfs.conf,内容为:a1.sour= r1a1.sinks = s1#channela1.channels.c1.type = memory a1.channels.c1.capacity=100000a1.channels.c1.tranionCapacity=50000#source

5、a1.sour a1.sour a1.sour a1.sour a1.sour.r1.channels = c1.r1.type = spooldir.r1.spoolDir = /root/data/.r1.batchSize= 50.r1.inpharset = UTF-8a1.sour a1.sour=cn. a1.sour a1.sour a1.sour a1.sour.r1.r1.erceptors =i1 i2 erceptors.i1.type.erceptor.CustomParametererceptor$Builder.r1.r1.r1.r1.erceptors.i1.fi

6、elds_separator=u0009 erceptors.i1.indexs =0,1,3,5,6erceptors.i1.indexs_separator =u002c erceptors.i1.encrypted_field_index =0a1.sour.r1.erceptors.i2.type=.apache.flume.erceptor.Timesterceptor$Builder#sink a1.sinks.s1.channel = c1 a1.sinks.s1.type = hdfsa1.sinks.s1.hdfs.path =hdfs:/192.168.200.101:90

7、00/flume/%Y%m%d a1.sinks.s1.hdfs.filePrefix = eventa1.sinks.s1.hdfs.fileSuffix = .log a1.sinks.s1.hdfs.rollSize = 10485760a1.sinks.s1.hdfs.rollerval =20a1.sinks.s1.hdfs.rollCount = 0a1.sinks.s1.hdfs.batchSize = 1500 a1.sinks.s1.hdfs.round = true a1.sinks.s1.hdfs.roundUnit = minute a1.sinks.s1.hdfs.threadsPoolSize = 25a1.sinks.s1.hdfs.useLocalTimeSt= truea1.sinks.s1.hdfs.minBlockReplicas = 1 a1.sinks.s1.hdfs.fileType =DataStream a1.sinks.s1.hdfs.writeFormat = Text a1.sinks.s1.hdfs.callTimeout = 60000a1.sinks.s1.hdfs.idleTimeout =60启动:bin/flume-ng

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论