目录
需求说明
-
官方提供的sink类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些sink。如:需要把接受到的数据按照规则进行过滤之后写入到某张mysql表中,所以此时需要我们自己实现MySQLSink。
-
官方也提供了自定义sink的接口:
代码开发步骤
根据官方说明自定义MysqlSink需要继承AbstractSink类并实现Configurable
实现对应的方法:
-
configure(Context context)
初始化context
-
start()
启动准备操作
-
process()
从channel获取数据,然后解析之后,保存在mysql表中
-
stop()
关闭相关资源
第一步:创建mysql数据库表
-- 创建一个数据库
CREATE DATABASE IF NOT EXISTS mysqlsource DEFAULT CHARACTER SET utf8 ;
USE mysqlsource;
-- 创建一个表,用户保存拉取目标表位置的信息
CREATE TABLE mysqlsource.flume2mysql (
id INT(11) NOT NULL AUTO_INCREMENT,
createTime VARCHAR(64) NOT NULL,
content VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
第二步:定义mysqlSink类
import org.apache.flume.conf.Configurable;
import org.apache.flume.*;
import org.apache.flume.sink.AbstractSink;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.

本文档详细介绍了如何自定义Flume Sink,将数据写入MySQL数据库。首先,阐述了自定义Sink的需求,然后按照创建数据库表、定义MysqlSink类、打包上传、配置Flume文件、启动Flume和验证数据的步骤逐步展开,帮助读者实现特定场景的数据处理和存储。
最低0.47元/天 解锁文章
460

被折叠的 条评论
为什么被折叠?



