【学习任务】项目任务-在Flume中自定义Sink组件
我要参与
【学习任务】项目任务-在Flume中自定义Sink组件
学习任务 1.0k
等40人参与
来源: 第7周 / 大数据工程师 2024 版

题目描述:

由于历史遗留问题,希望将Flume采集到的日志数据也同步保存到MySQL中一份,但是Flume目前不支持直接向MySQL中写数据,所以需要用到自定义Sink,自定义一个MySQLSink

日志数据默认在Linux本地的/data/soft/logs/user.log日志文件中,使用Flume采集到MySQL中到user表中。

user.log中的数据格式是这样的:字段之间使用逗号分割

​```
2020-01-01 01:10:23,tom,18,beijing
2020-01-01 01:12:09,jack,20,shanghai
2020-01-01 01:13:17,jessic,15,guangzhou
​```

MySQL中的`user`表结构信息如下:

​```
CREATE TABLE user  (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255),
  age int(11),
  city varchar(255),
  create_time datetime(0),
  PRIMARY KEY (id)
);
​```


效果:

最终可以在MySQL的user表中看到user.log中的数据

​```
mysql> select * from user;
+----+--------+-----+-----------+---------------------+
| id | name   | age | city      | create_time         |
+----+--------+-----+-----------+---------------------+
|  1 | tom    |  18 | beijing   | 2020-01-01 01:10:23 |
|  2 | jack   |  20 | shanghai  | 2020-01-01 01:12:09 |
|  3 | jessic |  15 | guangzhou | 2020-01-01 01:13:17 |
+----+--------+-----+-----------+---------------------+
3 rows in set (0.10 sec)
​```

任务要求:

1:在Flume中使用Exec Source+File Channel+MySQL Sink实现数据采集入库

任务提示、思路分析:

1:参考Flume中自定义Sink的文档(用户文档+开发者文档)以及系统内置KafkaSink的源码

去发布

登录后即可发布作业,立即

我的作业

全部作业

意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师