【导读】数据采集是进行大数据分析的前提也是必要条件,在整个流程中占据重要地位。本文将介绍大数据三种采集形式:系统日志采集法、网络数据采集法以及其他数据采集法。

(一)系统日志采集法

系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到***时***者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。(百度百科)大数据平台或者说类似于开源Hadoop平台会产生大量高价值系统日志信息,如何采集成为研究者研究热点。目前基于Hadoop平台开发的Chukwa、Cloudera的Flume以及Facebook的Scribe(李联宁,2016)均可成为是系统日志采集法的典范。目前此类的采集技术大约可以每秒传输数百MB的日志数据信息,满足了目前人们对信息速度的需求。一般而言与我们相关的并不是此类采集法,而是网络数据采集法。

在这里还是要推荐下我自己建的大数据学习交流群:529867072,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。

(二)网络数据采集法

做自然语言的同学可能对这点感触颇深,除了目前已经存在的公开数据集,用于日常的算法研究外,有时为了满足项目的实际需求,需要对现实网页中的数据进行采集,预处理和保存。目前网络数据采集有两种方法一种是API,另一种是网络爬虫法。

1.API

API又叫应用程序接口,是网站的管理者为了使用者方面,编写的一种程序接口。该类接口可以屏蔽网站底层复杂算法仅仅通过简简单单调用即可实现对数据的请求功能。目前主流的社交媒体平台如新浪微博、百度贴吧以及Facebook等均提供API服务,可以在其官网开放平台上获取相关DEMO。但是API技术毕竟受限于平台开发者,为了减小网站(平台)的负荷,一般平台均会对每天接口调用上限做限制,这给我们带来极大的不便利。为此我们通常采用第二种方式——网络爬虫。

2.网络爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOFA社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。(百度百科)最常见的爬虫便是我们经常使用的搜索引擎,如百度,360搜索等。此类爬虫统称为通用型爬虫,对于所有的网页进行无条件采集。通用型爬虫具体工作原理见图1。

图1 爬虫工作原理[2]

给予爬虫初始URL,爬虫将网页中所需要提取的资源进行提取并保存,同时提取出网站中存在的其他网站链接,经过发送请求,接收网站响应以及再次解析页面,提取所需资源并保存,再将网页中所需资源进行提取......以此类推,实现过程并不复杂,但是在采集时尤其注意对IP地址,报头的伪造,以免被网管发现禁封IP(我就被封过),禁封IP也就意味着整个采集任务的失败。当然为了满足更多需求,多线程爬虫,主题爬虫也应运而生。多线程爬虫是通过多个线程,同时执行采集任务,一般而言几个线程,数据采集数据就会提升几倍。主题爬虫和通用型爬虫截然相反,通过一定的策略将于主题(采集任务)无关的网页信息过滤,仅仅留下需要的数据。此举可以大幅度减少无关数据导致的数据稀疏问题。

(三)其他采集法

其他采集法是指对于科研院所,企业政府等拥有机密信息,如何保证数据的安全传递?可以采用系统特定端口,进行数据传输任务,从而减少数据被泄露的风险。

【结语】大数据采集技术是大数据技术的开端,好的开端是成功的一半,因此在做数据采集时一定要谨慎选择方法,尤其是爬虫技术,主题爬虫应该是对于大部分数据采集任务而言是较好的方法,可以深入研究。