考前回顾记忆点:
- 爬虫python代码(urllib,bs4库)
- 正则表达式基础
- 书p129规范化变换数据的三个计算。
- 传感器节点结构
- 如何运用传感器节点构造一个数据采集系统?(第二章作业)
6.常用的数据采集命令行:hadoop命令行
**
第一章作业
**
1.数据采集系统主要实现哪些基本功能?
1)采集传感器输出的模拟信号,经过调整,采样,量化,编码,传输等步骤后转换成计算机能识别的数字信号然后送入计算机进行计算和处理。
2)将计算得到的数据进行存储、显示、或打印,以便监视物理量。
2.简述数据采集系统的基本结构形式,并比较其特点。
多路模拟输入通道分为集中式采集和分布式采集。
计算机数据采集系统是将多个传感器集中在一起,通过模拟多路开关对它们进行分时采集。系统架构简单,工作速度较低。
集散型数据采集系统由若干“数据采集站”与一台上位机及通信接口、线路组成,即数据是分布在不同区域的。系统适应能力强。数据采集站并行工作,可以实时响应。
3.采样周期与哪些因素有关?如何选择采样周期?
采样周期与存储空间与数据处理精度有关。
1)存储空间足够大,用常规采样技术:fs>=2xfmax
2)存储空间不足,用间歇采样技术。
3)信号频率随时间变化,用变频采样技术。
4.为什么要在数据采集系统中使用测量放大器?如何选择?
数据采集时来自传感器的模拟信号一般为较弱的低电平信号。程控放大器将微弱输入信号放大,以便充分利用A/D转换器的满量程分辨率。应根据
1)共模抑制比
2)温漂
3)非线性度等 选择放大器
5.在设计数据采集系统时,选择模拟多路转换器要考虑的主要因素是什么?
通道数量、泄漏电流、导通电阻、开关速度、芯片电源电压范围。
7.在数据采集系统中,模拟多路转换器的作用是什么?选 择型号和配置电路的原则是什么?
轮流切换各路模拟量与A/D转换器之间的通道,达到分时转换。要选择合适的1)A/D转换位数2)转换速率3)环境条件4)接口
8.A/D转换器主要技术指标
**
第二章作业
**
1. 物联网的体系结构?
物联网通常有3个层次:感知层、网络层和应用层。
a) 物联网的感知层。功能:完成信息的采集和转换。 其组成为传感器(或控制器)、短距离传输网络。
b) 物联网的网络层 功能:主要完成信息传递和处理。 组成:两个部分:接入单元、接入网络。接入单元是连接感知层的网桥,它汇聚从感知层获得的数据,并将数据发送到接入网络。接入网络即现有的通信网络。
c) 物联网的应用层功能:主要完成数据的管理和处理,并将这些数据与各行业应用的结合。 组成:包括两部分:物联网中间件、物联网应用。
2. 简述物联网和传感器网络的联系和区别。
联系:无线传感器网络是物联网的重要组成部分,主要负责监测各类环境参数.
区别:
(1) 物联网的网络拓扑更稳定。
(2) 物联网中实体的网络组织方式可以是有线,也可以是无线。
(3) 物联网具有较强的数据处理能力,并且具有智能处理能力。
3.物联网的关键技术包括哪些?
感知层的技术 1)传感器技术2) 无线传感器网络技术 3)射频识别(RFID)技术 (4)二维码技术
网络层的技术 1)Internet 2)通信网
应用层的技术 1)云计算 2)人工智能 3)数据挖掘 4)物联网中间件
4.对比传统数据采集系统,物联网数据采集系统有哪些优缺点?
优点:
1)传感器网络覆盖感知对象区域。
2)多传感器协作完成大范围感知任务。
4)使用多跳路由算法向用户汇报感测结果。
缺点:传感器节点电源能量有限,通信能力有限,计算和存储能力有限。
5.简述无线传感器节点的体系结构。 (重点)
无线传感器节点由sink -汇聚点,sensor node -传感器节点组成。
1)传感器节点sensor node:采集、处理、控制和通信等。
2)Sink节点:1.连接传感器网络与Internet等外部网络,实现两种协议栈之间的通信协议转换。2.发布管理节点的监测任务3.转发收集到的数据。
6.如何运用传感器节点构造一个数据采集系统?(重点)
将大量的静止或移动的传感器以自组织和多跳的方式布置在采集区域中,构成无线网络。通过这些传感器节点协作地采集、处理和传输网络覆盖地域内感知对象的监测信息,并报告给用户。
**
第三章课后作业
**
1.Android框架的组成和作用
(1)Linux内核层:提供核心系统服务,隐蔽硬件物理细节。
(2)系统运行库层:包含一 个C/C++库的集合,供Android系统的各个组件使用。
(3)应用框架层:提供开放的开发平台,简化组件软件的重用。
(4)应用层:用Java语言编写的运行 在虚拟机上的程序。
2.Android开发四大组件的概念和作用
(1)Activity:一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
(2)BroadcastReceive:应用可以使用它对外部事件进行过滤,只接收感兴趣的外部事件。
(3)Service: 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
(4)Content Provider使一个应用程序的指定数据集提供给其他应用程序。
3.Android编程基本概念
4.常用Android传感器种类和功能。
1.动作传感器
用于监视设备动作的传感器:加速传感器和重力传感器等。
2.位置传感器
Android平台提供了两个传感器用于确定设备的位置,这两个传感器是磁场传感器和方向传感器。
3.环境传感器
用于检测不同的外部环境。温度、湿度、光线传感器。
**
第四章课后作业
**
Hadoop框架
MapReduce执行流程
MapReduce 首先将存储在DFS中的大规模数据集切分成独立的split分片,这些分片被多个Map任务并行处理,结果继续作为Reduce任务的输入,最终有Reduce任务输出最终结果并写入DFS。
1.简述Hadoop的定义和特点
定义:Hadoop是为用户提供系统底层细节透明的开源分布式大数据计算平台。
特点:高可靠性,高效性,高可扩展性,高容错性,成本低,运行在Linux平台上,支持多种编程语言。
2.简述Hadoop的典型应用
(1)日志分析。
(2)推荐系统。
(3)数据仓库。
(4)数据挖掘
(5)数据实时查询
3.简述HDFS的全称和定义
分布式文件系统DFS:允许文件通过网络在多台主机上分享的 文件系统,让多个机器上的多个用户分享文件和存储空间。
HDFS: Hadoop Distributed File System(Hadoop分布式文件系统)
定义:HDFS是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。
4.简述YARN的作用
YARN 是一个资源管理、任务调度的框架,解决了Hadoop1的MapReduce中存在的单点故障、JobTracker任务过重等问题。主要包含三大模块:ResourceManager(RM)、 NodeManager(NM)、ApplicationMaster(AM)ResourceManager:资源管理;
ApplicationMaster:作业调度和监控;
NodeManager:执行原TaskTracker的任务。
5.简述Hive的作用和特点
作用:Hive是一个SQL解析引擎,它将SQL语句转译成MapReduce 作业并在Hadoop上执行。
特点:
(1)支持索引,加快数据查询。
(2)支持不同的存储类型,例如,纯文本文件、HBase 中的文件。
(3)将元数据保存在关系数据库中,减少了在查询中执行语义检查时间。
(4)可以直接使用存储在Hadoop 文件系统中的数据。
(5)内置大量用户函数UDF 来操作时间、字符串和其他的数据挖掘工具, 支持用户扩展UDF 函数来完成内置函数无法实现的操作。
(6)类SQL 的查询方式,将SQL 查询转换为MapReduce 的job 在Hadoop 集群上执行。
(7)编码跟Hadoop同样使用UTF-8字符集
6.简述Spark的作用和特点并和Hadoop进行比较
作用:快速地大规模查询,分析和转换数据
特点:运行速度快,易用性好,通用性强,被优化为在内存中运行。
比较:Spark的MapReduce的Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习 等需要迭代的map reduce的算法。
**
第五章作业
**
1.采用哪些方式可以获取大数据?
通过Chukwa,Flume,Scrible,Kafka等大数据采集工具从企业产生的大量数据中进行采集。
2.大数据采集工具有哪些?
Chukwa: Chukwa是一个用于监控大型分布式系统的开源数据收集系统。Apache Chukwa构建于Hadoop分布式文件系统(HDFS)和Map / Reduce框架之上,并继承了Hadoop的可扩展性和健壮性。
Scribe:Scribe是Facebook开源的日志收集系统,能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS, 分布式文件系统等)上,以便于进行集中统计分析处理。
Flume:Flume是Cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。
Kafka:由Apache软件基金会开发的一个开源流处理平台,由 Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅 消息系统,它可以处理消费者规模的网站中的所有动作流数据。 Kafka被设计成能够高效地处理大量实时数据,其特点是快速 的、可扩展的、分布式的,分区的和可复制的。
3.简述什么是Apache Flume数据采集。(书P38重点复习)
Apache Flume 是一个可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具。flume具有高可用,分布式的配置工具,其设计的原理是基于将如日志数据的数据流从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。
4.简述Sqoop的主要功能。
Apache Sqoop是一个开源的数据库导入/导出工具,允许用户将关系型数据库中的数据导入Hadoop的HDFS文件系统,或将数据从Hadoop导入到关系型数据库。
5.Kafka抽象具有哪种模式的特征消费组?
(书P43) 队列消息服务和广播服务。
如果Consumers有同一个组名,那么Kafka就相当于一个队列消息服务,而各个Consumer均衡地消费相应Partition中的数据。
如果Consumers有不同的组名,那么Kafka就相当于一个广播服务,它会把Topic中的所有消息广播到每个Consumer。
Consumer Group是Kafka实现单播和广播两种消息模型的手段。同一个topic的数据,会广播给不同的Consumer group;同一个Consumer group中的worker,只有一个worker能拿到这个数据。
6.Topic可以有多个分区,这些分区有什么作用?
(1)作为并行处理单元,使Kafka高效处理大数据。
(1)有利于水平扩展,避免单台机器在磁盘空间和性能上的限制
(2)同时可以通过复制来增加数据冗余性,提高容灾能力。
第六章作业
1.什么是数据迁移? (重点)
数据迁移,就是将这些旧系统中宝贵的历史数据进行清洗、转换,并装载到新系统中的过程。它是一种将离线存储与在线存储融合的技术。它将高速、高容量的非在线存储设备作为磁盘设备(即在线存储设备)的下一级设备,然后将磁盘中常用的数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上。
(在线存储是指存储设备和所存储的数据时刻保持 “在线”状态,可供用户随意读取,满足计算平台对数据访问的速度要求。就像PC机中常用的磁盘存储模式一样。一般在线存储设备为磁盘和磁盘阵列等存储设备,价格相对昂贵,但性能较好。
离线存储是对在线存储数据的备份,以防范可能发生的数据灾难。离线存储的数据不常被调用,一般也 远离系统应用,所以人们用“离线”来生动地描述这种存储方式。
)
2.基于主机的迁移方式包括哪几种方式?
(1)直接拷贝方法:利用操作系统的一些命令可以实现磁盘数据的直接复制,适合于脱机迁移的环境。
(2)逻辑卷数据镜像技术:对于采用逻辑卷管理器的操作系统,可使用逻辑卷管理器 完成数据迁移,适用于主机存储的非经常性迁移。
3.基于同构存储的数据迁移和基于异构存储的数据迁移的区别有哪些?
(1)同构存储的数据迁移是通过存储的同步复制迁移技术,实现磁盘或卷LUN的复制
(2)异构存储的数据迁移是通过存储的虚拟化管理技术,实现对不同品牌存储的统一管理及内部复制,从而实现数据迁移.
4.异构数据库的数据迁移通常存在哪些问题?
(1)字段类型变化
(2)序列不一致
(3)程序不兼容 主键
(4)索引丢失
5.服务器虚拟化迁移有哪些优点?
服务器虚拟化可以提高设备资源的利用率,可实现服务器 的资源整合和充分运用,也符合目前云计算的需求
6.ETL构建数据仓库包含哪些关键流程?(重点)
(1) 数据抽取:从不同的数据源(不同物理环境和背景 以及多样化的数据)中通过采用不同的方法抽取数据的一个过程。
(2)数据转换:从数据源中抽取获得的数据格式与目标数据格式可能存在不一致的情况,所以需要对抽取后的数据进行数据转换以及加工的处理,包括数据的合并、汇总、过滤和转换,重新对数据进行格式化等过程。
(3)数据清洗:指数据在加载到数据仓库之前,可能会 存在- -些问题数据,即"脏数据" ,如不完整数据、错误数据和重复数据等须进行数据清洗,这是一个不 断反复的过程。
(4)数据加载:将经过数据转换和数据清洗后的数据依照实际数据模式定义的表结构装载到目标库中。通常包含两种方式装载,一种是通过SOL语句插入、删除和更新操作,另种是采用批量装载方法
7.简述Sqoop的数据导入和数据导出的过程。(重点)
导入流程:
(1)读取要导入数据的表结构
(2)读取参数,设置好job
(3)调用mapreduce执行任务
对数据进行切分
写入范围,以便读取
读取范围参数(第二步中设置的参数)
创建RecordReader并从数据库中读取数据
创建map
执行map
导出流程:
导入过程的逆向过程
8.使用Kettle实现数据迁移。
具体操作在如下网站学习:
https://www.cnblogs.com/wlming/p/8080480.html
**
第七章作业
**
1.什么是网络爬虫?网络爬虫的常见应用有哪些?
网络爬虫是一种自动采集网络数据的程序,一般分为数据采集、处理、存储三个部分,被广泛用于互联网搜索引擎、资讯采集、舆情监测等领域。
2.常用的网络爬虫抓取策略有哪些?
(1)深度优先策略:按照深度由低到高的顺序,依次访问下一级网页链接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点进一步搜索其他链接。当所有链接遍历完后,爬行任务结束。
(2)广度优先策略:按照广度优先的搜索思想,逐层抓取URL池中的每一个URL的内容,并将每一 层的扇出URL纳入URL池中,按照广度优先的策略继续遍历。
(3)局部PageRank(链接的访问量排名)策略:按照一定的网页分析算法,预测候选URL与目标网页的相似度或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。
(4)OPIC策略:初始时给所有页面-一个相同的初始现金(cash)。当下载了某个页面之后,将P的现金分摊给所有从P中分析出的链接并将P的现金清空。对于待抓取AL队列中的所有页面都须按照现金数进行排序。
(5)大站优先策略:指对待抓取URL队列中的所有网页,根据所属的网站进行分类。对于待下载页面量大的网站,优先下载
(6)反向链接数策略:指一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人推荐的程度。
(7)最佳优先搜索策略:通过URL描述文本与目标网页的相似度,或者与主题的相关性,根据所设定的阈值选出有效的URL进行抓取。
3.常用的网络更新策略有哪些?
(1)历史参考策略:最直观,利用泊松过程来对网页的变化进行建模,根据每个网页过去的变动情况,利用模型预测将来何时内容会再次发生变化,以此来指导爬虫的抓取过程。
(2)用户体验策略:保存网页的多个历史版本,并根据过去每次内容变化对搜索质量的影响,得出一个平均值,以此作为判断爬虫重新抓取该网页时机的参考依据,对于影响越厉害的网页,则越优先调度重新抓取。
(3)聚类抽样策略:可以根据属性将网页归类,同一类别内的网页具有相同的更新频率。为了计算某个类别的更新周期,只需对类别内网页进行采样,以这些采样网页的更新周期作为该类别内所有网页的更新周期。
4.常用的网页分析算法有哪些?
网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。
(1) 基于用户行为的分析算法:根据用户对网页的访问频率 、访问时长 、点击率等对网页数据进行分析
(2) 基于网络拓扑的分析算法:根据网页的外链 、网页的层次 、网页的等级等对网页数据进行分析,计算出网页的权重,对网页进行排名
(3) 基于网页内容的分析算法:根据网页的外观 、网页的文本等内容特征对网页数据进行分析
5.简述通用爬虫工作过程?
(1)首先在互联网中选出一部分网页,以这些网页的链接地址作为种子URL
(2)将这些种子URL放入待抓取的URL队列中,爬虫从待抓取的URL队列依次读取
(3)将URL通过DNS解析
(4)把链接地址转换为网站服务器对应的IP地址
(5)网页下载器通过网站服务器对网页进行下载
(6)下载的网页为网页文档形式(html)
(7)对网页文档中的URL进行抽取,过滤掉已经抓取的URL后将新的URL放入URL队列中。
(8)对未进行抓取的URL继续循环抓取,直至待抓取URL队列为空。
其中,下载的网页文档一部分存储到页面库中,等待建立索引等后续处理,另一方面将网页中的URL存入已抓取URL库中,提供给步骤7进行过滤。
6.什么是聚焦网络爬虫?
聚焦爬虫的工作流程是根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
7.简述Python的Urllib库的主要模块和功能。
(1)urllib.requst模块:发送request和获取request的结果。
(2)urllib.error模块:捕获由urllib.request产生的异常并返回错误原因
(3)urllib.parse模块:定义了一个标准接口,把URL字符串拆分成组件,并能把组件合成URL或者将相对URL展换为给定的基URL的绝对URL
(4)urllib.robotparser模块:一般来说,网站都会定义robots.txt文件,该文件主要用来规定网络爬虫爬取该网站时存在的限制。
8.简述BeautifulSoup库的作用。
BeautifulSoup是一个可以从HTML 或XML文件中提取数据的Python库。
BcautifulSoup 提供一些简单的Python式的函数用来处理导航、搜索、修改分析等功能。
它同时也是一个工具箱,通过解析文档为用户提供需要抓取的数据。统一将输出文档转换为utf- 8编码。
**
第八章作业
**
1.简述HTML数据采集的主要过程
(1)通过urllib中的urlopen函数向指定url发起请求,得到返回的html。
(2)通过bs4中的BeautifulSoup函数解析html,得到bs对象,基于bs对象进行html解析获取html中需要的数据。
2.简述常见的爬虫的分类方法?
一:按功能分类
(1) 批量型爬虫,有明确抓取范围和目标,达到目标后立即停止抓取。
(2) 增量型爬虫,根据用户配置持续抓取,并且定期更新抓取到的网页和及时反映更新的变化。
(3) 垂直型爬虫:根据用户配置持续抓取属于指定主题的页面。
二:按系统结构分类
(1) 通用网络爬虫:又称全网爬虫。
(2) 聚焦网络爬虫:按照预定义的主题有选择地爬取网页,相对通用网络爬虫增加了目标的定义和过滤机制。
(3) 深层网络爬虫
(4) 分布式网络爬虫
3.简述BeautifulSoup库中的四个主要对象和功能
(1)BeautifulSoup 对象:一个html文档的全部内容。
(2)标签Tag 对象: BeautifulSoup 对象通过find 和find_all,或者直接调用子标签获取的一列对象或单个对象,
(3)NavigableString对象:标签中的文字。
(4)comment对象:用来查找文档注释。
4.简述BeautifulSoup库中常用的解析器
5.掌握网页爬取编程步骤和基础正则表达式
6.掌握Scrapy框架编程
引擎(Scrapy)
用来处理整个系统的数据流处理, 触发事务(框架核心)
调度器(Scheduler)
用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
下载器(Downloader)
用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
爬虫(Spiders)
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
项目管道(Pipeline)
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
7.简述Xpath和CSS选择器的主要功能。
8.简述使用CSV文件存储数据。
9.掌握Mysql的基本命令
**
十一章:数据预处理技术
**
-
列举出常用于数据散布特征的统计度量,并讨论如何在大数据预处理分析中有效地计算。
散布特征:(1)极差:最大值减最小值。(2)分位数 (3)方差与标准差。 -
针对不同的数据类型,数据相似性和相异性常用的计算方法有哪些?
(1) 标称属性:设m是匹配的数目(对象i和对象j取值相同状态的属性数),p数对象的属性总数。 则对象i和j的相异性d(i,j)=(p-m)/p,相似性 sim(I,j)=1-d(I,j)
(2) 二元属性:
(3) 数值属性:欧几里得距离,曼哈顿距离和闵可夫斯基距离。
(4) 混合类型属性相似性和相异性度量
(5) 文档相似性和相异性度量:词频向量。 -
数据清洗的主要任务?常用的数据清洗技术?
主要任务:标准化数据格式,清楚异常和重复数据。
常用技术:缺失值处理,光滑噪声数据处理,检测偏差与纠正偏差。 -
数据规约的目的?常用的数据规约技术?
得到数据集的归约表示,使得数据集变小的同时保持原数据的完整性。
常用的数据规约技术:维归约,数量归约和数据压缩。
10.假设所分析的数据包括年收入income(单位:万元),它在数据元组中的值(以递增序)为3,3,6,6,7,7,8,9,9,10,10,12,12,12,15,15,15,18,18,18,20,20,20,20,24,24,30,30.计算数据的均值,中位数以及众数。
均值:
11.利用习题10中的数据,回答如下问题:
(1) 将数据划分到大小为4的等频箱中,给出每个箱中的数据。
箱1:3,3,6,6
箱2:7,7,8,9
箱3:9,10,10,12
箱4:12,12,15,15
箱5:15,18,18,18
箱6:20,20,20,20,
箱 7:24,24,30,30.
(2) 分别给出利用箱均值光滑数据结果和用箱边界光滑数据的结果。
箱均值光滑数据结果:用每个箱中的均值代替原值。
箱边界光滑结果:将给定箱最大最小值视为箱边界,将箱中值替换为最近的边界值。
12.利用习题10中的数据,回答如下问题:
(1)使用min-max规范化变换,将年收入值为22变换到[0.0,1.0]区间。
Min=3,max=30.根据p129(6-24)
Xi’=(22-3)/(30-3)*(1.0-0.0) + 0.0=
(2)使用z-score规范化变换年收入值为22的数据,其中数据的标准差为7.46。
数据的均值为14. 根据p129 (6-25)
Xi’=(22-14) /7.46=
(3) 使用小数定标规范化变化年收入值为22的数据。
Xi取值为3-30
其最大绝对值为30
则由(6-28)得j=2.(使得max(|xi’|<1)的最小整数)
则22规范化为22/10的二次方=0.22