1. 从对数据操作的方式不同
可以归纳为两类数据:
一类是采集数据,如日志采集、网络数据采集(即爬虫)、传感器采集(硬件采集)等,这类是客观世界自动生成的信息;
一类是搬运数据,比如批量移动,实时移动等,这是纯技术操作迁移数据问题。
2. 按照数据产生的主体不同分类
按照数据产生的主体不同,数据采集分类有网络数据采集、系统日志数据采集、操作系统日志数据采集、数据库数据采集等。
(1)网络数据采集
通过网络爬虫技术实现从公开网站或API获取数据信息的过程,使用网络爬虫时会从一个或若干个初始网页的URL开始获取各个网页上的内容,并且在抓取网页的过程中不断从当前页面上抽取新的URL放入队列,直到满足设置的停止条件。
爬取的数据存储在本地的数据中心,网络数据采集的过程,如图1-3所示。
(2)系统日志数据采集
主要用于收集公司业务平台产生的大量日志数据,供离线和在线的大数据分析系统使用。日志采集系统具备高可用性、高可靠性和可扩展性,系统日志采集工具均采用分布式架构,能够满足每秒数百兆字节的日志数据采集和传输需求。采集日志文件常用的工具有Flume、Logstash、FileBeat等等。如Flume数据采集框架,主要设置source、channel和sink,可以在Windows操作系统和Linux操作系统下的大数据采集平台上实现flume的日志数据采集。
(3)操作系统日志数据采集
记录管理员在系统中操作的信息,可以通过采集系统日志信息来检查错误发生的原因。本教材采用Windows操作系统数据采集器采集操作系统日志文件信息,以及Windows系统下部署Logstash实施操作系统日志数据采集。
(4)数据库数据采集
主要是从MySQL和Oracle等关系型数据库导入数据到 HDFS,再从HDFS导出到关系型数据库。企业通过在采集端部署大量数据库并实现这些数据库之间的负载均衡和分片,来完成大数据的采集工作。
数据库数据采集常用的工具有Sqoop和Kettle。Sqoop是实现在Hadoop和关系数据库服务器之间传输数据的一个工具。Kettle是把ETL的过程可视化,进行数据抽取、转换、加载过程的工具,可以实现可视化界面的操作方式,并且支持二次开发,方便与大数据平台的集成。