在大数据系统体系中,数据源、数据采集是第一环。
本文从以下几个方面分享数据采集:
-
数据源 2.数据同步工具 3.数据采集模块实战分享
数据源
在企业生产应用中数据来源极多,大致可以分为:日志采集、爬虫系统、数据库等
数据采集
在生产实际应用中,一般将数据采集分为日志采集和数据库数据同步两部分。其中日志采集包括浏览器的页面日志采集和客户端的日志采集。
数据同步技术更通用的含义是不同系统间的数据流转,有多种不同的应用场景。主数据库与备份数据库之间的数据备份,以及主系统与子系统之间的数据更新,属于同类型不同集群数据库之间的数据同步。另外,还有不同地域、不同数据库类型之间的数据传输交换,比如分布式业务系统与数据仓库系统之间的数据同步。总体方案分为两种:
-
实时同步,比如Flume实时采集日志,比如Canal实时采集mysql的binlog或者从kafka中获取。
-
离线同步,比如使用sqoop离线同步等。
技术选型
现在业内常用的数据采集常用框架有Flume、Sqoop、LogStash、DataX、Canal、WaterDrop等。这些工具的使用都比较简单,学习成本较低。根据每种工具的适用范围和优缺点。结合自己的业务和使用场景进行选择使用。
Flume
Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中。如下图是单Agent架构图。
Logstash