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这四个字,这样就满足需求了。

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

相关文章
|
7月前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
181 5
|
存储 物联网 数据管理
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(12)
现在到了使用Apache IoTDB进行IoT相关开发的架构设计与功能实现的最后一个环境,在本文中我将向大家介绍IoTDB的查询语言。IoTDB为咱们广大开发者提供了类似SQL的查询语言,用于与IoTDB进行交互,查询语言可以分为4个主要部分:架构语句、数据管理语句、数据库管理语句、功能。
221 0
|
7月前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
381 2
|
7月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
144 0
|
7月前
|
数据采集 消息中间件 存储
Flume 快速入门【概述、安装、拦截器】
Apache Flume 是一个开源的数据采集工具,用于从各种数据源(如日志、网络数据、消息队列)收集大规模数据,并将其传输和加载到数据存储系统(如 HDFS、HBase、Hive)。Flume 由数据源(Source)、通道(Channel)、拦截器(Interceptor)和接收器(Sink)组成,支持灵活配置以适应不同的数据流处理需求。安装 Flume 包括解压软件包、配置环境变量和调整日志及内存设置。配置文件定义数据源、通道、拦截器和接收器,拦截器允许预处理数据。Flume 适用于构建数据管道,整合分散数据到中心存储系统,便于分析和报告。
1239 3
|
6月前
|
存储 SQL 数据管理
基于阿里云数据库 SelectDB 版内核 Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解
自动分区的出现进一步简化了复杂场景下的 DDL 和分区表的维护工作,许多用户已经使用该功能简化了工作流程,并且极大的便利了从其他数据库系统迁移到 Doris 的工作,自动分区已成为处理大规模数据和应对高并发场景的理想选择。
|
7月前
|
存储 数据采集 监控
Flume 拦截器概念及自定义拦截器的运用
Apache Flume 的拦截器是事件处理组件,位于Source和Channel之间,用于在写入Channel前对数据进行转换、提取或删除。它们支持数据处理和转换、数据增强、数据过滤以及监控和日志功能。要创建自定义拦截器,需实现Interceptor接口,包含initialize、intercept、intercept(List<Event>)和close方法。配置拦截器时,通过Builder模式实现Interceptor.Builder接口。在Flume配置文件中指定拦截器全类名,如`TestInterceptor$Builder`,然后启动Flume进行测试。
242 0
|
SQL Java 应用服务中间件
Apache Doris 自定义C++ UDF之流程详解(1)
Apache Doris 自定义C++ UDF之流程详解(1)
278 0
|
7月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
67 1
|
7月前
|
消息中间件 分布式计算 Kafka
硬核!Apache Hudi中自定义序列化和数据写入逻辑
硬核!Apache Hudi中自定义序列化和数据写入逻辑
165 1

推荐镜像

更多