大数据(四)大数据采集
说明
本博客每周五更新一次。
数据处理分为入库、计算和输出,本文主要分享数据入库。
数据采集
数据采集是大数据平台数据处理流程的第一步,如何让数据以合适的效率和方式在大数据平台落地,根据场景不同,有着不同方案。一般情况如下。
实时数据量巨大,要求绝对的效率,单位时间无法处理意味着数据丢失,一般这种情况下,源数据不做任何转换,如通信行业、电商平台等。
数据量中等或一般,要求数据字段一对一转换,并要求同步更新,如mysql、oracle数据库同步。
采集数据追求效率有优先,并能实时同步,针对这些需求,市场上已有成熟的项目或服务,后面一一介绍。
种类
数据采集分为两部分,数据转换和数据传输。
数据转换:将源数据转换为符合要求的数据结构,通过数据传输录入大数据集群。
数据传输:将源数据录入大数据平台。
数据转换
datax
阿里巴巴开源数据离线同步工具,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
表结构映射关系通过json文件设置。
Sqoop
Apache 开源数据转换工具,主要用于hadoop、Hive、Hbase与传统数据库(mysql、Oracle、postgresql等)间进行数据的传递,反过来,也可以将关系型数据库中数据同步到Hadoop中。
flume
Cloudera发布的高可用、高可靠、分布式海量日志采集、聚合和传输的系统,兼顾数据转换和传输,支持发送方收集数据时定制各类数据;接收方对数据进行简单处理。
flume0.9 和 flume1.0 两个版本变动较大,区别对待。
数据传输
kafka
Apache 开源流处理平台,运行稳定,性能高效,广泛应用于大数据和数据传输领域。
开发语言java和scala。
pulsar
队列和流一体消息传递模型,属于新一代组件,与kafka对标项目,未使用过不做评价。
开发语言java
hdfs-over-ftp
github开源项目,功能是将hadoop平台hdfs数据存储单个节点映射为ftp或sftp服务端,在使用ftp或sftp客户端完成上传。
总结
数据采集是大数据平台重要一环,每个平台对这部分的要求都有差异,适合自己的就是最好的。