大数据技术原理和应用林子雨版课后习题答案解析.docx
《大数据技术原理和应用林子雨版课后习题答案解析.docx》由会员分享,可在线阅读,更多相关《大数据技术原理和应用林子雨版课后习题答案解析.docx(42页珍藏版)》请在冰豆网上搜索。
![大数据技术原理和应用林子雨版课后习题答案解析.docx](https://file1.bdocx.com/fileroot1/2023-1/9/a724762a-f7ac-4834-9d1e-42c5c78e97b9/a724762a-f7ac-4834-9d1e-42c5c78e97b91.gif)
大数据技术原理和应用林子雨版课后习题答案解析
第一章
1.试述信息技术发展史上的3次信息化浪潮及具体内容。
信息化浪潮
发生时间
标志
解决问题
代表公司
第一次浪潮
1980年前后
个人计算机
信息处理
Intel、AMD、IBM、苹果、微软、联想、戴尔、惠普等
第二次浪潮
1995年前后
互联网
信息传输
雅虎、谷歌、阿里巴巴、XX、腾讯等
第三次浪潮
2010年前后
物理网、云计算和大数据
信息爆炸
将涌现出一批新的市场标杆企业
2.试述数据产生方式经历的几个阶段
答:
运营式系统阶段,用户原创内容阶段,感知式系统阶段。
3.试述大数据的4个基本特征
答:
数据量大、数据类型繁多、处理速度快和价值密度低。
4.试述大数据时代的“数据爆炸”的特性
答:
大数据时代的“数据爆炸”的特性是,人类社会产生的数据一致都以每年50%的速度增长,也就是说,每两年增加一倍。
5.数据研究经历了哪4个阶段?
答:
人类自古以来在科学研究上先后历经了实验、理论、计算、和数据四种范式。
6.试述大数据对思维方式的重要影响
答:
大数据时代对思维方式的重要影响是三种思维的转变:
全样而非抽样,效率而非精确,相关而非因果。
7.大数据决策与传统的基于数据仓库的决策有什么区别
答:
数据仓库具备批量和周期性的数据加载以及数据变化的实时探测、传播和加载能力,能结合历史数据和实时数据实现查询分析和自动规则触发,从而提供对战略决策和战术决策。
大数据决策可以面向类型繁多的、非结构化的海量数据进行决策分析。
8.举例说明大数据的基本应用
答:
领域
大数据的应用
金融行业
大数据在高频交易、社区情绪分析和信贷风险分析三大金融创新领域发挥重要作用。
汽车行业
利用大数据和物联网技术的五人驾驶汽车,在不远的未来将走进我们的日常生活
互联网行业
借助于大数据技术,可以分析客户行为,进行商品推荐和有针对性广告投放
个人生活
大数据还可以应用于个人生活,利用与每个人相关联的“个人大数据”,分析个人生活行为习惯,为其提供更加周全的个性化服务。
9.举例说明大数据的关键技术
答:
批处理计算,流计算,图计算,查询分析计算
10.大数据产业包含哪些关键技术。
答:
IT基础设施层、数据源层、数据管理层、数据分析层、数据平台层、数据应用层。
11.定义并解释以下术语:
云计算、物联网
答:
云计算:
云计算就是实现了通过网络提供可伸缩的、廉价的分布式计算机能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种IT资源。
物联网是物物相连的互联网,是互联网的延伸,它利用局部网络或互联网等通信技术把传感器、控制器、机器、人类和物等通过新的方式连在一起,形成人与物、物与物相连,实现信息化和远程管理控制。
12.详细阐述大数据、云计算和物联网三者之间的区别与联系。
大数据、云计算和物联网的区别
大数据、云计算和物联网的联系
大数据侧重于海量数据的存储、处理与分析,海量数据中发现价值,服务于生产和生活;云计算本质上皆在整合和优化各种IT资源并通过网络已服务的方法,廉价地提供给用户;物联网的发展目标是实现呜呜向量,应用创新是物联网的核心
从整体来看,大数据、云计算和物联网这三者是相辅相成的。
大数据根植于云计算,大数据分析的很多技术都来自于云计算,云计算的分布式存储和管理系统提供了海量数据的存储和管理能力,没有这些云计算技术作为支撑,大数据分析就无从谈起。
物联网的传感器源源不断的产生大量数据,构成了大数据的重要数据来源,物联网需要借助于云计算和大数据技术,实现物联网大数据的存储、分析和处理。
第二章
1.试述hadoop和谷歌的mapreduce、gfs等技术之间的关系
答:
Hadoop的核心是分布式文件系统HDFS和MapReduce,HDFS是谷歌文件系统GFS的开源实现,MapReduces是针对谷歌MapReduce的开源实现。
2.试述Hadoop具有哪些特性。
答:
高可靠性,高效性,高可扩展性,高容错性,成本低,运行在Linux平台,支持多种编程语言
3.试述Hadoop在各个领域的应用情况。
答:
2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadooop集群系统;
Facebook主要将Hadoop平台用于日志处理,推荐系统和数据仓库等方面;
XX主要使用Hadoop于日志的存储和统计、网页数据的分析和挖掘、商业分析、在线数据反馈、网页聚类等。
4.试述Hadoop的项目结构以及每个部分的具体功能。
答:
Pig
Chukwa
Hive
HBase
MapReduce
HDFS
Zookeeper
Common
Avro
Commeon是为Hadoop其他子项目提供支持的常用工具,主要包括文件系统、RPC和串行化库
Avro是为Hadoop的子项目,用于数据序列化的系统,提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持续性数据的文件集、远程调用的功能和简单的动态语言集成功能。
HDFS是Hadoop项目的两个核心之一,它是针对谷歌文件系统的开源实现。
HBase是一个提高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。
MapReduce是针对谷歌MapReduce的开源实现,用于大规模数据集的并行运算。
Zoookepper是针对谷歌Chubby的一个开源实现,是高效和可靠的协同工作系统,提供分布式锁之类的基本服务,用于构建分布式应用,减轻分布式应用程序所承担的协调任务。
Hive是一个基于Hadoop的数据仓库工具,可以用于对Hadoop文件中的数据集进行数据整理、特殊查询和分布存储。
Pig是一种数据流语言和运行环境,适合于使用Hadoop和MapReducce平台上查询大型半结构化数据集。
Sqoop可以改进数据的互操作性,主要用来在H大哦哦哦配合关系数据库之间交换数据。
Chukwa是一个开源的、用于监控大型分布式系统的数据收集系统,可以将各种类型的数据收集成适合Hadoop处理的文件,并保存在HDFS中供Hadoop进行各种MapReduce操作。
第三章
1.试述分布式文件系统设计的需求。
设计需求
含义
HDFS的实现情况
透明性
具备访问透明性、位置透明性、性能、和伸缩透明性
只能提供一定程度的访问透明性,完全支持位置透明性、性能和伸缩透明性
并发控制
客户端对于文件的读写不应该影响其他客户端对同一个文件的读写
机制非常简单,任何时候都只允许有一个程序写入某个文件
文件复制
一个文件可以拥有不同位置的多个副本
HDFS采用了多副本机制
硬件和操作系统的异构性
可以在不同的操作系统和计算机上实现同样的客户端和服务端程序
采用Java语言开发,具有很好的跨平台能力
可伸缩性
支持节点的动态加入或退出
建立在大规模廉价机器上的分布式文件系统集群,具有很好的伸缩性
容错
保证文件服务在客户端或者服务端出现问题的时候能正常使用
具有多副本机制和故障自动检测、恢复机制
安全
保证系统的安全性
安全性较弱
2.分布式文件系统是如何实现较高水平扩展的?
分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(MasterNode)或者也被称为“名称结点”(NameNode),另一类叫“从节点”(SlaveNode)或者也被称为“数据节点”(DataNode)
3.试述HDFS中的块和普通文件系统中的块的区别。
答:
在传统的文件系统中,为了提高磁盘读写效率,一般以数据块为单位,恶如不是以字节为单位。
HDFS中的块,默认一个块大小为64MB,而HDFS中的文件会被拆分成多个块,每个块作为独立的单元进行存储。
HDFS在块的大小的设计上明显要大于普通文件系统。
4.试述HDFS中的名称节点和数据节点的具体功能。
答:
名称节点负责管理分布式文件系统系统的命名空间,记录分布式文件系统中的每个文件中各个块所在的数据节点的位置信息;
数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并向名称节点定期发送自己所存储的块的列表。
hadoopfs-ls显示指定的文件的详细信息
hadoopfs-cat将指定的文件的内容输出到标准输出
hadoopfs-mkdir创建指定的文件夹
hadoopfs-get[-ignorecrc][-crc]复制指定的文件到本地文件系统指定的文件或文件夹。
-ignorecrc选项复制CRC校验失败的文件。
使用-crc选项复制文件以及CRC信息。
hadoopfs-put从本地文件系统中复制指定的单个或多个源文件到指定的目标文件系统中。
也支持从标准输入(stdin)中读取输入写入目标文件系统。
hadoopfs-rmr删除指定的文件夹及其的所有文件
第四章
1.试述在Hadoop体系架构中HBase与其他组成部分的相互关系。
答:
HBase利用HadoopMapReduce来处理HBase中的海量数据,实现高性能计算;利用Zookeeper作为协同服务,实现稳定服务和失败恢复;使用HDFS作为高可靠的底层存储,利用廉价集群提供海量数据存储能力;Sqoop为HBase的底层数据导入功能,Pig和Hive为HBase提供了高层语言支持,HBase是BigTable的开源实现。
2.请阐述HBase和BigTable的底层技术的对应关系
答:
项目
BigTable
HBase
文件存储系统
GFS
HDFS
海量数据处理
MapReduce
HadoopMapReduce
协同服务管理
Chubby
Zookeeper
3.请阐述HBase和传统关系数据库的区别
答:
区别
传统关系数据库
HBase
数据类型
关系模型
数据模型
数据操作
插入、删除、更新、查询、多表连接
插入、查询、删除、清空,无法实现表与表之间关联
存储模式
基于行模式存储,元组或行会被连续地存储在磁盘也中
基于列存储,每个列族都由几个文件保存,不同列族的文件是分离的
数据索引
针对不同列构建复杂的多个索引
只有一个行键索引
数据维护
用最新的当前值去替换记录中原来的旧值
更新操作不会删除数据旧的版本,而是生成一个新的版本
可伸缩性
很难实现横向扩展,纵向扩展的空间也比较有限
轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩
4.HBase有哪些类型的访问接口?
答:
HBase提供了NativeJavaAPI,HBaseShell,ThriftGateway,RESTGateWay,Pig,Hive等访问接口。
5.请以实例说明HBase数据模型。
答:
Info
Name
Major
Email
201505001
LuoMin
Math
Luo@
201505002
LiuJun
Math
liu@
201505003
XieYou
Math
xie@
you@
行键
单元格
单元格有两个时间戳ts1和ts2
每个时间戳对应一个数据版本
6.分别解释HBase中行键、列键和时间戳的概念
(1)行键是唯一的,在一个表里只出现一次,否则就是在更新同一行,行键可以是任意的字节数组。
(2)列族需要在创建表的时候就定义好,数量也不宜过多。
列族名必须由可打印字符组成,创建表的时候不需要定义好列。
(3)时间戳,默认由系统指定,用户也可以显示设置。
使用不同的时间戳来区分不同的版本。
7.请举个实例来阐述HBase的概念视图和物理视图的不同
HBase数据概念视图
行键
时间戳
列族contents
列族anchor
“n.www”
T5
Anchor:
=”CNN”
T3
Anchor:
my.look.ca=”CNN”
“n.www”
T3
Content:
html=”...”
T2
Content:
html=”...”
T1
Content:
html=”...”
HBase数据物理视图
行键
时间戳
列族anchor
“n.www”
T5
Anchor:
=”CNN”
T4
Anchor:
my.look.ca=”CNN”
行键
时间戳
列族contents
“n.www”
T3
Content:
html=”...”
T2
Content:
html=”...”
T1
Content:
html=”...”
在HBase的概念视图中,一个表可以视为一个稀疏、多维的映射关系。
在物理视图中,一个表会按照属于同一列族的数据保存在一起
8.试述HBase各功能组建及其作用
(1)库函数:
链接到每个客户端;
(2)一个Master主服务器:
主服务器Master主要负责表和Region的管理工作;
(3)许多个Region服务器:
Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求
9.请阐述HBase的数据分区机制。
答:
HBase采用分区存储,一个大的表会被分拆许多个Region,这些Region会被分发到不同的服务器上实现分布式存储。
10.HBase中的分区是如何定位的。
通过构建的映射表的每个条目包含两项内容,一个是Regionde标识符,另一个是Region服务器标识,这个条目就标识Region和Region服务器之间的对应关系,从而就可以知道某个Region被保存在哪个Region服务器中。
11.试述HBase的三层结构中各层次的名称和作用。
层次
名称
作用
第一层
Zookeeper文件
记录了-ROOT-表的位置信息
第二层
-ROOT-表
记录了.META.表的Region位置信息
-ROOT-表只能有一个Region。
通过-ROOT-表,就可以访问.META.表中的数据
第三层
.META.表
记录了用户数据表的Region位置信息,.META.表可以有多个Region,保存了HBase中所有用户数据表的Region位置信息
12.请阐述HBase的三层结构下,客户端是如何访问到数据的。
答:
首先访问Zookeeper,获取-ROOT表的位置信息,然后访问-Root-表,获得.MATA.表的信息,接着访问.MATA.表,找到所需的Region具体位于哪个Region服务器,最后才会到该Region服务器读取数据。
13.试述HBase系统基本架构以及每个组成部分的作用。
(1)客户端
客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程
(2)Zookeeper服务器
Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有唯一一个Master在运行,这就避免了Master的“单点失效”问题
(3)Master
主服务器Master主要负责表和Region的管理工作:
管理用户对表的增加、删除、修改、查询等操作;实现不同Region服务器之间的负载均衡;在Region分裂或合并后,负责重新调整Region的分布;对发生故障失效的Region服务器上的Region进行迁移
(4)Region服务器
Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求
14.请阐述Region服务器向HDFS文件系统中读写数据的基本原理
Region服务器内部管理一系列Region对象和一个HLog文件,其中,HLog是磁盘上面的记录文件,它记录着所有的更新操作。
每个Region对象又是由多个Store组成的,每个Store对象了表中的一个列族的存储。
每个Store又包含了MemStore和若干个StoreFile,其中,MemStore是在内存中的缓存。
15.试述HStore的工作原理
每个Store对应了表中的一个列族的存储。
每个Store包括一个MenStore缓存和若干个StoreFile文件。
MenStore是排序的内存缓冲区,当用户写入数据时,系统首先把数据放入MenStore缓存,当MemStore缓存满时,就会刷新到磁盘中的一个StoreFile文件中,当单个StoreFile文件大小超过一定阈值时,就会触发文件分裂操作。
16.试述HLog的工作原理
答:
HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(WriteAheadLog),用户更新数据必须首先写入日志后,才能写入MemStore缓存,并且,直到MemStore缓存内容对应的日志已经写入磁盘,该缓存内容才能被刷写到磁盘。
17.在HBase中,每个Region服务器维护一个HLog,而不是为每个Region都单独维护一个HLog。
请说明这种做法的优缺点。
优点:
多个Region对象的更新操作所发生的日志修改,只需要不断把日志记录追加到单个日志文件中,不需要同时打开、写入到多个日志文件中。
缺点:
如果一个Region服务器发生故障,为了恢复其上次的Region对象,需要将Region服务器上的对象,需要将Region服务器上的HLog按照其所属的Region对象进行拆分,然后分发到其他Region服务器上执行恢复操作。
18.当一台Region服务器意外终止时,Master如何发现这种意外终止情况?
为了恢复这台发生意外的Region服务器上的Region,Master应该做出哪些处理(包括如何使用HLog进行恢复)?
Zookeeper会实时监测每个Region服务器的状态,当某个Region服务器发生故障时,Zookeeper会通知Master。
Master首先会处理该故障Region服务器上面遗留的HLog文件,这个遗留的HLog文件中包含了来自多个Region对象的日志记录。
系统会根据每条日志记录所属的Region对象对HLog数据进行拆分,分别放到相应Region对象的目录下,然后,再将失效的Region重新分配到可用的Region服务器中,并把与该Region对象相关的HLog日志记录也发送给相应的Region服务器。
Region服务器领取到分配给自己的Region对象以及与之相关的HLog日志记录以后,会重新做一遍日志记录中的各种操作,把日志记录中的数据写入到MemStore缓存中,然后,刷新到磁盘的StoreFile文件中,完成数据恢复。
第五章
1.如何准确理解NoSQL的含义?
NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的一类统称,它采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型。
2.试述关系数据库在哪些方面无法满族Web2.0应用的需求。
关系数据库已经无法满足Web2.0的需求。
主要表现在以下几个方面:
(1)无法满足海量数据的管理需求
(2)无法满足数据高并发的需求
(3)无法满足高可扩展性和高可用性的需求
3.请比较NoSQL数据库和关系数据库的优缺点。
比较标准
RDBMS
NoSQL
备注
数据库原理
完全支持
部分支持
RDBMS有关系代数理论作为基础
NoSQL没有统一的理论基础
数据规模
大
超大
RDBMS很难实现横向扩展,纵向扩展的空间也比较有限,性能会随着数据规模的增大而降低
NoSQL可以很容易通过添加更多设备来支持更大规模的数据
数据库模式
固定
灵活
RDBMS需要定义数据库模式,严格遵守数据定义和相关约束条件
NoSQL不存在数据库模式,可以自由灵活定义并存储各种不同类型的数据
查询效率
快
可以实现高效的简单查询,但是不具备高度结构化查询等特性,复杂查询的性能不尽人意
RDBMS借助于索引机制可以实现快速查询(包括记录查询和范围查询)
很多NoSQL数据库没有面向复杂查询的索引,虽然NoSQL可以使用MapReduce来加速查询,但是,在复杂查询方面的性能仍然不如RDBMS
一致性
强一致性
弱一致性
RDBMS严格遵守事务ACID模型,可以保证事务强一致性
很多NoSQL数据库放松了对事务ACID四性的要求,而是遵守BASE模型,只能保证最终一致性
数据完整性
容易实现
很难实现
任何一个RDBMS都可以很容易实现数据完整性,比如通过主键或者非空约束来实现实体完整性,通过主键、外键来实现参照完整性,通过约束或者触发器来实现用户自定义完整性
但是,在NoSQL数据库却无法实现
扩展性
一般
好
RDBMS很难实现横向扩展,纵向扩展的空间也比较有限
NoSQL在设计之初就充分考虑了横向扩展的需求,可以很容易通过添加廉价设备实现扩展
可用性
好
很好
RDBMS在任何时候都以保证数据一致性为优先目标,其次才是优化系统性能,随着数据规模的增大,RDBMS为了保证严格的一致性,只能提供相对较弱的可用性
大多数NoSQL都能提供较高的可用性
标准化
是
否
RDBMS已经标准化(SQL)
NoSQL还没有行业标准,不同的NoSQL数据库都有自己的查询语言,很难规范应用程序接口
StoneBraker认为:
NoSQL缺乏统一查询语言,将会拖慢NoSQL发展
技术支持
高
低
RDBMS经过几十年的发展,已经非常成熟,Oracle等大型厂商都可以提供很好的技术支持
NoSQL在技术支持方面仍然处于起步阶段,还不成熟,缺乏有力的技术支持
可维护性
复杂
复杂
RDBMS需要专门的数据库管理员(DBA)维护
NoSQL数据库虽然没有DBMS复杂,也难以维护
5.试述NoSQL数据库的四大类型
答:
键值数据库、列族数据库、文档数据库和图数据库
6.试述键值数据库、列族数据库、文档数据库和图数据库的适用场合和优缺点。
数据库
适用场合
优点
缺点
键值数据库
通过键而是通过值来查的业务
扩展性好,灵活性好,大量写操作时性能高
无法存储结构化信息,条件查询效率较低
列族数据库
不需要ACID事务支持的情形
查找速度快,可扩展性强,容易进行分布式扩展,复杂性低
功能较少,大都不支持强事务一致性
文档数据库
只在相同的文档上添加事务
性能好(高并发),灵活性高,复杂性低,数据结构灵活
提供嵌入式文档功能,将经常查询的数据存储在同一个文档中
既可以根据键来构建索引,也可以根据内容构建索引
缺乏统一的查询