大数据之数据采集组件选型

楼高2年前技术文章1864

按数据的源头、实际上也是对应的数据采集方式,分别进行分析与技术推荐,数据从源头基本分为

以下三大类

1、Web页面/移动App/MES/IoT/系统生产: 

这些数据是被动接收。建议可采用Apache NiFi,Apache Seatunel,虽然国内有DataX,但是NiFi

的能力要丰富,可视化界面,画布模式简单拖拽,NiFi经过Apache多年开源积累已经相当成熟,

有每天处理几十亿数据的案例SeaTunnel 与 kettle,NiFi这种重量级的平台相比,更像 Datax 轻量

级的数据传输工具,用户可以根据需要来安装 Source、Sink、Transform插件对于特殊场景,可以

使用NiFi和SeaTunnel结合使

第一种结合方式是可以用 NiFi 的 执行程序组件封装 SeaTunnel ,利用NiFi的调度能力,使其可以

定时运行 SeaTunnel 任务另外一种形式是NiFi可以二次开发来封装 SeaTunnel 组件

2、数据库(database):

首先可以是定期增量或全量批拉的方式,这里主要讲实时的CDC方式,数据是基于事件被推过来的。

(1)MySQL,可以采用Sqoop/Canal,也可以自己写逻辑成一个定制的NiFi Processor,最后流入

Kafka,也可以同时流入其它存储。

(2)Oracle可以采用OGG同步Oracle数据,通过解析源数据库在线日志或归档日志获得数据的增

删改变化(数据量只有日志的四分之一左右)

(3)HBase可以考虑写一个基于HBaseEndpoint的CDC(Change Data Capture)

(4)Cassandra作为一线业务存储,官方有CDC支持

(5)关系数据库管理系统(RDBMS)采用Sqoop完全可以支持

3、系统日志(System log):

可以用Apache NiFi中的TailFile(支持Rolling)这个Processor,中间加上自己写或拖拽处需要的处

理逻辑,最后吐到Kafka等存储中。或者使用典的Flume也是可以,但是相对来说NiFi简单便捷。

4、消息队列:一般选用Apache Flink做准实时数据处理,也可采用SparkStreaming或者

Apache Storm

数据采集组件选择流程图:

image.png

综合:用NiFi一个框架就可以解决所有数据的问题了,而且NiFi具备综合的管理能力,如:跟踪、

监控、拖拽开发、多租户、HA方案等。可以把NiFi看成是万能的整合采集器,但不要把复杂的

计算逻辑让它来担当,那不是它的强项。NiFi还有背压的能力

相关文章

flink sql 批处理

进入flink sql命令行sql-client.shSource 表        与所有 SQL 引擎一样,Flink 查询操作是在表上进行。与传统数据库不同,Flink 不在本地管理静态数据;相...

Redis 源码安装

Redis 源码安装

1. 下载安装包Linux 中常用两种安装方法,第一种是通过操作系统软件管理软件来安装,例如 CentOS 中的 yum Ubuntu 中的 apt。由于 Redis 更新比较快,而这些软件也不一定更...

MySQL运维实战之ProxySQL(9.9)proxysql自身高可用

MySQL运维实战之ProxySQL(9.9)proxysql自身高可用

proxysql作为一个程序,本身也可能出现故障。部署proxysql的服务器也肯能出现故障。高可用架构的一个基本原则是消除单点。可以在多个节点上部署proxysql,在proxysql之前再加一层负...

SLS日志采集 

SLS日志采集 

创建Pjoject创建日志库接入日志新建机器组数据接入Logtail配置--添加Logtail配置选择需要的日志文本格式按下列步骤完成即可编辑日志格式配置查询分析数据...

开源大数据集群部署(十九)Hbase部署

开源大数据集群部署(十九)Hbase部署

2.8 HBASE 安装部署hbase组件部署主机HMasterhd1.dtstack.comhd2.dtstack.comHRegionServerhd3.dtstack.com,hd2.dtsta...

Flink window详解

Flink window详解

一、窗口(window)一般真实的流都是无界的,如果是无界怎样处理无界的数据可以把无限的数据流进行切分,得到有限的数据集进行处理 —— 也 就是得到有界流 窗口(window)就是将无限流切割为有限流...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。