flume入门学习过程

魏书
2023-12-01

flume学习过程

前景提要:
现在我们对数据的处理更加的快速高效,我们使用flink,spark,storm等大数据处理工具来实时处理数据,这些工具的上游数据来源可能是应用,可能是各种数据库。那有什么工具可以把数据从多源头推送到大数据引擎?这样的工具有很多比如Flume, sqoop, canal,nifi等,经过了解我决定先学习flume,因为flume开发起来比较快,而且支持的平台很多。当然选用某个工具的时候最先考虑的应该是你当时的业务场景。
flume是什么:
是一个高可用的,高可靠的,分布式的海量日志采集聚合传输的系统。
高可用高可靠分布式体现:
Setting multi-agent flow(设置多个agent流)
Consolidation(结合)
Multiplexing the flow(选择分流)
参考博客1
参考博客2

为什么要使用flume:
flume是怎么做到支持众多的sources和sink的?我以为是它内置了这些sources和sink的实现;
参考依据
怎么使用flume
flume的安装部署很简单,只需要下载包,修改配置中的java_home地址,在conf中添加需要跑的任务就可以,唯一需要注意的就是conf文件的里的配置需要细心配置;
具体安装部署参照此博客:
https://blog.csdn.net/oraclestudyroad/article/details/51914698
官网有flume支持的所有sources sink的配置,可以根据需求查看:

http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html

我的使用场景是实时同步mysql的增量数据,一般来说可以自己自定义flume的sources来实现,不过现有的已经有很多强大的插件可以帮我们减轻工作量,mysql作为数据源可以使用flume-ng-sql这个插件:
https://github.com/keedio/flume-ng-sql-source

如果还是对flume没有一个很清晰的概念,我推荐去看这个教程,讲解得很精简足够了解flume
https://www.bilibili.com/video/BV1tV411U7mu?p=1

 类似资料: