当前位置: 首页 > news >正文

4、flume的自定义拦截器Iterceptor

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

  • 1、首先是需要定义一个类实现Iterceptor接口,然后在他内部在定义一个内部类实现 Iterceptor.Builder接口即可,看代码!!

      package com.liufu.storm.iterceptor;
    
      import java.util.List;
    
      import org.apache.flume.Context;
      import org.apache.flume.Event;
      import org.apache.flume.interceptor.Interceptor;
    
      public class FlumeIterceptor implements Interceptor{
    
      	private String appID;
    
      	public FlumeIterceptor() {
      		// TODO Auto-generated constructor stub
      	}
    
      	public FlumeIterceptor(String appID) {
      		this.appID = appID;
      	}
    
      	public void initialize() {
      		// TODO Auto-generated method stub
    
      	}
    
      	public Event intercept(Event event) {
      		// TODO Auto-generated method stub
      		String body = new String(event.getBody());
      		body = appID + "&&" + body;
      		event.setBody(body.getBytes());
      		return event;
      	}
    
      	public List<Event> intercept(List<Event> events) {
    
      		for(Event event : events){
      			intercept(event);
      		}
      		return events;
      	}
    
      	public void close() {
      		// TODO Auto-generated method stub
    
      	}
    
      	//这个很重要,一定是需要为public,否则的话,外部是调用不了这个Builder的。
      	public static class FlumeIterceptorBuild implements Interceptor.Builder{
      		/**
      		 * 定义一些需要外部传进来的参数,并且在这里定义之后才能够从configure获取,然后放在Build中。
      		 */
      		private String appID;
      		public void configure(Context context) {
      			// TODO Auto-generated method stub
      			appID = context.getString("appID","default");
      		}
    
      		public Interceptor build() {
      			// TODO Auto-generated method stub
      			return new FlumeIterceptor(appID);
      		}
      	}
      }
    

转载于:https://my.oschina.net/liufukin/blog/799170

相关文章:

  • Ubuntu Docker安装运行出错Cannot connect to the Docker daemon
  • PSR-2
  • 对象转为json数据
  • Listview_简单使用_(Virtual)
  • NIO源码阅读
  • 上传和设置Mime类型
  • SAP S/4 HANA新变化-FI数据模型
  • 线程与异常
  • 【转载】一个优秀求职者应主动问的一些问题
  • 关于Flux,Vuex,Redux的思考
  • 文字跑马灯
  • 我掌握的linux防火墙知识
  • HttpResponseMessage 调用.net web api
  • CentOS下Samba文件服务器的安装与配置
  • 跟着百度学PHP[4]OOP面对对象编程-12-抽象类
  • ES6指北【2】—— 箭头函数
  • JavaScript-如何实现克隆(clone)函数
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 内存分配及垃圾回收机制初探
  • JavaScript新鲜事·第5期
  • JS函数式编程 数组部分风格 ES6版
  • PermissionScope Swift4 兼容问题
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 阿里云前端周刊 - 第 26 期
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 欢迎参加第二届中国游戏开发者大会
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 聊一聊前端的监控
  • 前端自动化解决方案
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 使用parted解决大于2T的磁盘分区
  • 数据结构java版之冒泡排序及优化
  • 由插件封装引出的一丢丢思考
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Linux权限管理(week1_day5)--技术流ken
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #### go map 底层结构 ####
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (4)Elastix图像配准:3D图像
  • (C++)八皇后问题
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (TOJ2804)Even? Odd?
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (新)网络工程师考点串讲与真题详解
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • ***监测系统的构建(chkrootkit )
  • .htaccess配置常用技巧