第8章 大数据采集习题
8.1 选择题
1、数据采集的数据对象类型包括( D )。
A. 结构化数据 B. 半结构化数据 C. 非结构化数据 D. 以上都是
2、数据采集的主要性能要求不包括以下的( B )。
A. 全面性 B. 安全性 C. 多维性 D. 高效性
3、大数据采集相对于传统数据采集的优势不包括( C )。
A. 数据源广泛 B. 安全性 C. 速度有限 D. 数据类型丰富
4、大数据采集和传统数据采集的区别可以从下面的( B )看出。
1数据源 2数据量 3数据类型 4数据产生速度 5数据存储
A. 123 B. 12345 C. 234 D. 2345
5、下面不属于Scrapy的组件的是( A )。
A. 传感器 B. 引擎 C. 下载器 D. Spider
6、下面选项属于典型的网络数据采集工具的是( A )。
A. Scrapy B. Fluentd C. Logstash D. Flume
7、目前传感器的主要组件不包括( D )。
A. 敏感元件 B. 转换元件 C. 信号调理转换电路 D. 二极管
8、下面不属于典型日志系统的是( D )。
A. Fluentd B. Logstash C. Scribe D. Nutch
9、Nutch的主要特点不包括( C )。
A. 伸缩性强 B. 可靠性高 C. 安全性强 D. 速度快
10、定向数据采集特别重视( A )。
A. 页面与主题的相关度 B. 链接的安全性 C. 系统的运行时间 D. 数据量的大小
8.2 填空题
1、数据采集的对象类型包括结构化数据、半结构化数据、( 非结构化数据 )。
2、数据采集三个基本的性能要求:全面性、 ( 多维性 )、高效性。
3、传感器一般由敏感元件、( 转换原件 )、信号调理转换电路组成,有时还需外加辅助电源来提供转换能量。
4、分布式采集系统的主要特点包括( 伸缩性强 )、可靠性高、速度快。
5、分布式数据采集系统常常采用 ( 主从式 )和对等式这两种架构。
8.3 简答题
1、请简述网络爬虫的基本原理。
答:
网络爬虫又称为网络蜘蛛、网络机器人,是一种按照一定的规则自动地抓取Web数据的程序或者脚本。网络爬虫会从一个或若干初始页面的统一资源定位器开始,获得初始页面上的数据,并且在抓取页面数据的过程中,不断从当前页面中抽取新的URL并放入URL队列,直到满足设置的停止条件为止。
2、请简述系统日志的概念及作用。
答:
系统日志用于在时间上连续地记录由系统指定的对象的动作及动作结果。系统日志可以记录系统进程和设备驱动程序的活动,包括系统服务的开启、关闭、暂停等状态,以及设备驱动程序启动、自检、故障等情况。操作系统、数据库、网络系统等平台每天都会产生大量的系统日志,收集、存储、处理和管理这些系统日志需要特定的日志系统。
3、请描述分布式数据采集系统的两种典型架构。
答:
对于主从式架构而言,由一台专门的主服务器来维护待抓取的URL队列,该服务器负责将URL分发到不同的工作服务器,而工作服务器则负责页面下载的工作。主服务器除了维护待抓取的URL队列以及分发URL,还要负责调节各个工作服务器的负载情况。基于主从式架构的分布式数据采集系统的优点是结构简单,容易管理和配置;其缺点是主服务器容易成为系统性能的瓶颈,特别是当工作服务器数量过于庞大时。 基于对等式架构的分布式数据采集系统没有主服务器,所有的抓取服务器在分工上没有区别,分别负责不同部分的网络数据的抓取。每一台抓取服务器都可以从待抓取的URL队列中利用Hash等方式获取需要负责抓取的部分URL,然后并行抓取。8.4 解答题
1、在大数据时代,数据采集的工具多种多样。网络爬虫是一种按照一定的规则自动地抓取Web数据的程序或者脚本。请描述网络爬虫的工作流程。
答:
选取一部分种子URL。 将这些URL放入待抓取URL队列。 从待抓取URL队列取出待抓取URL,通过域名解析,得到主机的IP地址,将URL对应的页面下载下来,并存储到已下载的页面库中。 将这些URL放入已抓取URL队列。 分析已抓取URL队列中的URL,分析其中的其他URL,并且将这些URL放入待抓取URL队列,进入下一轮循环。2、Fluentd是Apache 2.0协议许可的开源日志数据收集器,支持用户实时地从数千台机器收集数据,主要特色包括哪些?
答:
使用JSON格式统一日志记录。Fluentd将数据结构化为JSON格式,不仅可以更容易地统一处理日志数据的收集、过滤、缓冲和输出,还可以保留灵活的模式。 可插拔架构。Fluentd拥有灵活的插件系统,用户可以通过插件更好地使用日志。可插拔架构,Fluentd的众多插件使其可以兼容数十种数据源和数据输出,插件也很容易编写和部署。 节省资源开销。Fluentd是采用C语言和Ruby语言编写的,需要较少系统资源,实例可以运行在数十MB的内存上,每个引擎每秒可以处理数以万计的事件。 基于内存和文件的缓存。Fluentd支持基于内存和文件的缓存,可防止数据丢失。 数据源与后端系统分离。Fluentd通过在数据源与后端系统之间提供统一的日志层来将二者分离。日志层允许开发人员和数据分析师使用多种类型的日志,可以更好地利用日志数据。3、基于Hadoop平台的Nutch能够实现分布式数据的采集。请具体描述Nutch的运行流程。
答:
Nutch的工作主要可以分为两个环节:首先采集相关的页面,然后将采集的页面数据存放在本地,并建立索引。
建立初始种子链接的URL集合,将URL集合存放在文本,然后上传至HDFS。 执行Inject的操作,将种子URL集合注入URL队列。 执行Generate的操作,通过URL队列生成采集所需的链接列表。 执行Fetch的操作,根据链接列表的种子链接采集相关的页面内容。 执行Parse的操作,解析采集到的页面数据,然后生成parsedata和parsetex两个文件目录,分别存放页面文本内容和页面中的超链接等信息。 执行Update的操作,将抽取的新链接更新到始种子链接队列。 循环执行步骤3到步骤6,当满足设定的条件时,结束数据采集工作。4、请分析何谓通用数据采集,何谓定向数据采集;请描述定向数据采集算法的典型步骤。
答:
通用数据采集的对象是从特定的种子链接开始的,采用广度搜索的方式,其目标是采集互联网上的全部页面。与通用数据采集相对的是以聚焦网络爬虫为核心的定向数据采集。定向数据采集服务于特定的专业群体,采集的数据只局限于某个主题或者与其相关的领域。
定向数据采集算法的步骤包括:
将初始的种子URL全部放入链接队列,根据初始的种子URL进行页面数据的采集,提取锚文本的内容、页面的标题及正文。 对正文进行分词的操作,计算关键字的权重和文本的相关度。 利用文本聚类算法将相关度高文本聚集在一起。 根据聚类好的文本,利用朴素贝叶斯算法计算待抓取的页面属于该主题的概率。 通过归类完成的与主题相关的页面生成页面主题评价器,假设所采集页面的数量小于预先设定的最大页面数量,则循环执行以下步骤。 从链接集合中选出得分最高的链接,采集该链接对应页面的数据,抽取对应页面中的链接并插入链接队列。 计算页面的主题相关度,若大于阈值,则保存所对应的页面,否则进行交叉和变异操作。 及时调整当前页面得分,重新计算从当前页面抽取的链接对应页面的得分。 根据最新的页面得分重排链接队列中的所有链接,把与主题相关的页面放入训练集合中,获取最新的页面主题评价器。 比较计算出的相关度与阈值,大于阈值的链接则重新返回步骤1;小于阈值的链接则直接舍弃。 按照上述的步骤,对页面进行定向数据采集,直到采集的页面数量大于或等于预先设定的最大页面数量为止。