Apache Flume-自定义拦截器-功能实现|学习笔记

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 快速学习 Apache Flume-自定义拦截器-功能实现

开发者学堂课程【Flume 基础应用实战-企业全场景解决方案Apache Flume-自定义拦截器-功能实现】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/715/detail/12777


Apache Flume-自定义拦截器-功能实现


自定义拦截器最终功能的实现

当开发好相关代码之后,需要把自定义拦截器的程序,打成一个 jar 包,因为配置的相关的 Maven 插件,所以点击选择 Maven project,选择 lifestyle 当中的Package 双击,这样就会在工程的 Package 目录下打上一个相关的jar包,静静地等待一会显示 build success,可以发现在 target 目录下有了一个 jar 包。

图片1.png

把这个 jar 包拖出来,这就是自定义拦截器jar 包。有了 jar 包后,需要把它  flume 的 lib 下,来到第一台机器上,第一步 cd 到 lib 当中,在这个文件夹路径下把 jar 包拖曳进来。

拖拽之后,接下来就是配置方案的编写。打开参考资料,有一个叫做 spool-interceptor-hdfs.conf 的文件 

图片2.png

打开看一下,里面列举出来了采用自定义拦截器收集数据的方案

首先定义了三个组件的名字。

Channel 是内存的 channel 缓存。

Source 绑定了 channel 为 c1,路径叫做 spooldir 类型,监控文件夹,这个文件在 /root/logs3/,下面是 batchsize,50一个批次

图片3.png

拦截器的内容是 i1,i2 两个拦截器,一个是它自带的时间拦截器,一个是自定义拦截器,注意包名一定要开发的时候保持一致,叫做 cn.itcast.interceptor ,所以这也叫 Interceptor&Builder我们的内部类

 

下面这些根据需求可以进行相关的修改

图片4.png

接下来把这个采集方案放在 Flume conf 路径下

打开 Flume,首先 cd 到 conf 当中编辑一下方案名字,配置好之后,一定要注意打开 insert 的编辑模式,把里面的参数复制过来,下面这个命令不要复制过来复制一遍,做一个相关的粘贴,保证当中的 ip 路径相关的参数包括包的路径保持一致,不然就会出错,接下来做一个保存完之后,准备下数据

图片5.png

它放在 /root/logs4/ 路径下因此来到 logs4 创建文件夹

cd 到 logs4 当中把刚才数据文件上传过来接下来就回到 Flume 当中执行一下 Flume,看一下它能不能进行数据的收集,收集到 Flume 上面之后,并且把数据做一个拦截加密的过程接下来打开文件当中的启动命令复制一下做一个执行

现在这些把文件写在这个路径下前缀后面叫 itcasr 后缀叫做 dat,处理完之后,看一下数据最终的结果长什么样

现在没有变因为还是一个临时文件,没有发生滚动

滚动控制条件20秒,可以发现现在滚动完毕。最后把这个文件下载下来,验证一下到底有没有对数据做相关的加密工作,右打开来看一下,可以发现左边是原始的数据当中有手机号,7个字,但数字当中,手机号做了一个 MD5 加密,而且只保留1356这四个字,这样就满足需求了。

在企业当中,这一个自定义拦截器用的比较多,因为每家公司可能都有自己的需求,不管是针对什么加密什么拦截什么处理只要按照它的规范来开发代码就可以满足于相关的需求,这就是我们自定义拦截器的功能实现。

相关文章
|
SQL 物联网 Apache
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(11)
目前,IoTDB中不存在冲突的权限,因此用户的真正权限是用户自身权限和用户角色权限的结合。也就是说,要确定用户是否可以执行操作,取决于用户自己的权限之一或用户角色的权限是否允许该操作。用户自己的特权和用户角色的特权可能会重叠,但这并不重要。
199 1
|
存储 物联网 数据管理
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(12)
现在到了使用Apache IoTDB进行IoT相关开发的架构设计与功能实现的最后一个环境,在本文中我将向大家介绍IoTDB的查询语言。IoTDB为咱们广大开发者提供了类似SQL的查询语言,用于与IoTDB进行交互,查询语言可以分为4个主要部分:架构语句、数据管理语句、数据库管理语句、功能。
206 0
|
SQL 传感器 物联网
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(10)
物联网提供限制/限制条款和偏移/偏移子句,以使用户对查询结果有更多的控制权。使用 LIMIT 和 SLIMIT 子句允许用户控制查询结果的行数和列数,使用 OFFSET 和 SOFSET 子句允许用户设置结果的起始位置进行显示。
137 0
|
6月前
|
存储 数据采集 监控
Flume 拦截器概念及自定义拦截器的运用
Apache Flume 的拦截器是事件处理组件,位于Source和Channel之间,用于在写入Channel前对数据进行转换、提取或删除。它们支持数据处理和转换、数据增强、数据过滤以及监控和日志功能。要创建自定义拦截器,需实现Interceptor接口,包含initialize、intercept、intercept(List<Event>)和close方法。配置拦截器时,通过Builder模式实现Interceptor.Builder接口。在Flume配置文件中指定拦截器全类名,如`TestInterceptor$Builder`,然后启动Flume进行测试。
152 0
|
SQL Java 应用服务中间件
Apache Doris 自定义C++ UDF之流程详解(1)
Apache Doris 自定义C++ UDF之流程详解(1)
231 0
|
6月前
|
消息中间件 分布式计算 Kafka
硬核!Apache Hudi中自定义序列化和数据写入逻辑
硬核!Apache Hudi中自定义序列化和数据写入逻辑
145 1
|
6月前
|
XML Java Apache
Apache Flink自定义 logback xml配置
Apache Flink自定义 logback xml配置
341 0
|
6月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.20 安装Flume
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
96 0
Hadoop学习笔记(HDP)-Part.20 安装Flume
|
SQL 传感器 物联网
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(8)
IoTDB为用户提供了多种插入实时数据的方式,如直接输入插入SQL语句在客户端,这插入SQL语句语句可用于将数据插入到一个或多个已创建的指定时间序列中。
305 1
|
SQL 物联网 Java
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(9)
GROUP BY 语句为用户提供了三种类型的指定参数: 参数1:时间轴上的显示窗口 参数2:划分时间轴的时间间隔(应为正) 参数3:时间滑动步长(可选,不应小于时间间隔,如果未设置,则默认等于时间间隔)
238 0
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(9)

推荐镜像

更多