大数据技术导论课后习题及答案_第1页
大数据技术导论课后习题及答案_第2页
大数据技术导论课后习题及答案_第3页
大数据技术导论课后习题及答案_第4页
大数据技术导论课后习题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一

1.大数据的特性有哪些?

答:Volume(数据量大)、Variety(数据类型繁多)、Velocity(处理

速度快)、Value(价值密度低)、Online(在线)。

2.大数据时代产生的原因有哪些?

答:外部原因:(1)存储设备容量不断增加。(2)CPU处理能力大幅提升。

(3)网络带宽不断增加。根本原因:数据产生方式的巨大变化是大数据时

代产生的本质原因。

3.一般情况下,大数据处理流程分为哪几个阶段?

答:大数据处理流程分为五步,分别是数据采集、数据预处理、数据存储

和数据计算、数据分析、数据可视化。

4.谷歌公司在大数据的发展中起了重要作用,谷歌“三架马车”指的是

什么?

答:在2003年,谷歌公司发表了谷歌分布式文件系统(GoogleFileSystem,

GFS)的论文。在2004年,谷歌又发表了谷歌大数据分布式计算框架

MapReduce的论文。在2006年,谷歌又发表了大表BigTable的论文。这

三篇论文是大数据技术发展史上重要的里程碑,史称谷歌大数据的“三架

马车”。

5.请结合自己的专业谈谈如何利用大数据技术解决具体问题。

答:略

项目二

1,叙述大数据处理和传统数据处理有什么不同?

答:传统数据处理平台在大数据时代将面临严重挑战。主要在以下几个方

面:

(1)由于传统数据处理平台多部署于单机环境下,用于处理结构化数据。

计算数据量也较小,数据存储大多采用关系型数据库。数据计算效率依赖单

机的性能,数据处理速度方面存在瓶颈,对于大数据量的处理无法达到实时

性要求。

(2)传统的数据处理方法以计算为中心,所有数据必须汇总传输到一台

机器进行计算,计算完毕后再返回,增加了数据传输时间。随着数据量的增

加,处理速度会越来越慢。

(3)传统数据处理平台数据来源单一,多用于处理结构化数据,对于非

结构化数据和半结构化数据无能为力。

大数据处理平台具有以下特点。

(1)分布式数据计算

(2)动态扩展性

(3)容错性强

(4)I/O传输速度快

2.Hadoop的设计思想是什么?

答:Hadoop的设计思想如下。

(1)能够大幅度降低高性能计算成本

用户可以通过家庭或者工作中普通的PC机组成大数据服务集群,集群节

点数量根据机器性能可以达到数千个。不必花费高昂的代价去购买集群服务

器用于环境搭建。使高性能计算实现成本降低,适用面更广泛。

(2)具有良好的稳定性和可靠性

争对集群中单个或多个服务器节点失效问题,Hadoop具有自动维护数据

的多份复本,同时在任务失败后能够重新部署计算任务的机制,从而保障了

服务器集群的稳定性和可靠性。

(3)能够大幅度提高数据计算和存储效率

Hadoop采用并行数据处理机制,把海量数据分割成多个小型的数据块,

并通过数据分发机制,把数据分发给集群上面的其他节点进行处理,减少了

系统对于海量数据存储和处理的时间。

(4)以数据为中心

秉承机柜内数据传输速度大于机柜间传输速度的思想(即移动计算比移

动数据更高效),对于海量数据采用“一次写,多次读”的方式,使文件不

会被频繁写入和修改,保证了集群各个节点的数据处理的高效性。

3.大数据有几种计算模式?代表技术分别是什么?

答:

计算模式应用场景实时代表技术

批处理计算模大规模数据的不高MapReduce>Spark>Flink

式离线批量处理等

流计算模式流数据的在线高Storm>FIink>

实时计算Spark-Streaming>S4等

图计算大规模图结构不高Pregel>Giraph>GraphX

数据的处理等

交互查询分析大规模数据的较高Hive>Impala等

模式交互查询分析

4.叙述大数据处理平台5种主流架构和各自的特点?

答:

(1)传统大数据架构

传统大数据架构主要为了解决传统BI的问题,传统BI经过长期的发展

已经形成了一套成熟和稳定的系统,但是随着大数据时代的到来,传统BI系

统遇到诸多挑战。由于传统BI系统处理数据量较少,且多为结构化数据的处

理。在大数据时代面对大规模的结构化数据和文件、图片、视频等非结构化

数据的冲击,传统BI遇到性能瓶颈问题。因此,我们必须对传统BI系统进

行升级改造,引入大数据处理技术搭建架构,称之为传统大数据架构。传统

大数据架构与传统BI相比,在数据分析的业务上没有发生任何变化,仅仅是

为了增加系统的结构化和非结构化数据的处理能力,提升了系统性能。由于

传统BI业务数据多为离线批处理,对实时性要求不高。所以传统大数据架构

也以批处理为主,不具备实时性,一般采用MapReduce、Spark等技术进行批

处理。这种架构主要应用在以BI为主的业务需求上,不过仅用于数据处理性

能遇到瓶颈问题时的系统改造上。

(2)流式架构

随着大数据时代的发展和传感器的广泛应用,出现了越来越多的实时处

理数据需求,比如实时监控预警,实时路径规划,实时在线报表等。传统大

数据架构为批量数据处理,无法满足实时性的需求。这时就需要搭建能够对

数据进行实时处理,时延小的系统架构,这就是流式架构。流式架构,顾名

思义就是整个架构只具备对数据的实时流计算功能,而不具备对数据的批量

处理功能。在流式架构中,数据全程以流的形式处理,没有ETL过程。经过

流处理加工后的数据,被直接推送显示出来。流式架构仅以窗口的形式进行

存储,本身不支持历史数据的重演和统计分析,不过我们可以根据实际需求,

在数据直接实时推送显示出来时,把符合我们预设条件的,有价值的数据存

入数据库中,以便后续数据分析和应用。流式架构数据处理一般采用的流计

算框架比如SparkStreaming、Storm、Flink等。流式架构多用于实时预警,实

时监控等对数据处理实时性要求比较高,同时又不需要支持历史数据统计分

析和重演的系统。

(3)Lambda架构

Lambda架构是现今企业用的最多的主流大数据架构。很多企业大数据架

构基本都是Lambda架构或者其变种。Lambda架构主要运用于同时需要实时

流处理和离线批量处理的场景。为了保证数据的实时处理和批量处理二者并

存,Lambda架构的数据通道分为两条:实时流和离线。实时流依照流式架构

处理,进行实时在线流计算,以增量计算为主。而离线则主要为数据批量处

理,以全量计算为主保障数据一致性。

(4)Kappa架构

Lambda架构运用非常广泛,也能解决大多数业务场景的实时和批量处理

需求。但是Lambda架构也有其自身不足。Lambda查询结果来自于批处理层

和快速计算层。而批处理层多用MapReduce、Spark等批处理技术,而快速计

算层多用Flink、SparkStreaming和Storm等流计算技术。系统开发时就需要

开发两种完全不同的代码,这非常不方便。因此,在Lambda架构的基础上

又提出了Kappa架构。Kappa架构的变革就是,在批处理层不再使用批处理

技术,而也使用快速处理层的流计算技术。这样一来,批处理层和快速处理

层都是使用了相同的流处理逻辑,实现框架统一化,从而简化了系统开发工

作。

(5)Unifield架构

在传统Lambda架构下,理论上快速处理层的输出结果与批处理层的输

出结果在业务意义上是完全相同,如果我们分别用两张数据库的表来存储批

处理层和快速处理层的计算结果,那么这两张数据库表的表结构应该是相同

的。只是数据记录不一样。但在实际应用中我们需要根据自己的需求对快速

处理层做出改动。Unifield架构就是以Lambda架构为基础,对其进行进一步

改造,在快速处理层新增了机器学习模型。

5.Hadoop生态系统组件有哪些,各自的作用是什么?

(1)底层

底层结构包括HDFS,MapReduce和Zookeeper。其中,HDFS是Hadoop

分布式文件存储系统。MapReduce是Hadoop的分布式并行运算框架。

Zookeeper是一种基于HDFS和HBase的开源的分布式协调服务组件,由

Facebook贡献给Apache基金会。Zookeeper对Hadoop集群提供分布式锁服

务,用于解决多个进程同步控制问题,防止“脏数据”,保证分布式任务执

行的一致性。

(2)数据收集处理转换层

数据收集处理转换层结构包括HBase>HivePigMahoutSqoop和Flume。

HBase(分布式列存数据库)是一个针对结构化数据的可伸缩、高可靠、

高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase

采用了BigTable的数据模型,即增强的稀疏排序映射表(Key/Value)。在

HBase中,数据的键由行关键字、列关键字和时间戳构成。HBase提供了对

大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用

MapReduce来处理。

Hive是一种基于平面文件而构建的分布式数据仓库,主要用于数据展示,

Hive提供了基于SQL的数据库查询语言,简化了MapReduce编程难度。利

用Hive,用户只需写SQL语句,而不需要编写复杂的MapReduce程序就能

运行MapReduce任务。

Pig是一种基于大数据集的批量数据处理平台,用于提供数据流处理的语

言和运行环境,Pig提供一种专用的语言PigLatin。Pig主要用于数据准备阶

段,提供数据加载、合并、过滤排序等数据操作功能。

Sqoop是一个数据接口,主要用来对HDFS和传统关系数据库中的数据

进行数据传输。在数据传输过程中,也可以利用Sqoop来做数据清洗。

Flume是一种分布式海量日志采集和传输的系统。用于对日志数据的收

集和简单的处理。它将数据从产生、传输、处理并最终写入目标的路径的过

程抽象为一条数据流,在数据流中,数据源是数据发送方,Flume支持收集

各种不同协议数据源数据。收集完数据后,Flume数据流能够对日志数据进

行简单处理,例如过滤、格式转换等。随后,Flume数据流能够将处理好的

数据写往各种数据库。总的来说,Flume是一个可扩展、适合复杂环境的海

量日志收集工具。

(3)数据挖掘层

数据挖掘层主要是利用数据挖掘组件Mahout执行数据挖掘任务。Mahout

是Apache旗下的一个开源算法库,主要用来做数据挖掘和机器学习,Mahout

中包含许多已实现的算法,例如分类、回归、聚类、协同过滤等。传统的Mahout

是提供的是Java的API,用户应用会编译成MapReduce的工作任务,运行在

MapReduce的框架上,计算效率低。现在,Spark的出现基本替代了

MapReduce,Mahout也已经停止接受新的MapReduce算法了,转向支持Spark。

(4)监控和运维层

监控和运维层主要是利用监控和运维组件对整个集群资源调度和任务运

行进行监控。在MRvl中一般使用Ambari来对集群进行监控。Ambari是一

款Hadoop集群监控工具,提供对Hadoop集群进行部署,配置,升级和监控

的服务。

HadoopMRv2版本生态系统在MRvl的基础上引入了Yarn框架进行集群

的资源管理调度。因为MapReduce本质上是一个大数据批处理平台。随着社

会的发展,批处理框架也越来越多,例如Spark、Flink等。同时,数据在线

实时处理需求大幅增加。而MRvl不擅长处理实时数据,同时还有一些机器

学习类的任务也不太适合用MRvl执行。所以,Strom、Flink和SparkStreaming

等实时计算框架应运而生,

6.叙述实时计算和批量计算的定义和区别。

答:批量计算指大规模数据的离线批量计算,计算数据量大,实时性要求不

高,时延一般为小时级。实时计算指数据的在线实时计算,数据计算量较大,

但是实时要求非常高,时延一般为秒级或毫秒级。

7.画出Hadoop2.x生态系统架构图

Ambari

(安装部署工具)

Oozie

作业流调度系统

(PigHive2

J雷

do黑

o忘MapReduceTez

&情

o(离线计算)(DAG计算)(内存计算)

zo田

)YAERN

(分布式计算框架)(

oEf昱

n栉

z巴

HDFS

(分布式存储礴)

项目三

l.Hadoop开发环境单机、伪分布式、完全分布式的差别是什么?

答:单机模式下Hadoop运行只有一个Java进程,单机模式Hadoop只

能读取系统目录下的本地文件。伪分布式配置Hadoop进程运行包含多个

Java进程,节点既作为NameNode,也作为DataNode,伪分布式配置Hadoop

可以读取本地文件也可以读取HDFS文件。完全分布式配置Hadoop进程运

行包含多个Java进程,NameNode和DataNode节点由不同的机器担任,完

全分布式配置Hadoop可以读取本地文件也可以读取HDFS文件。

2.Hadoop伪分布式环境为什么要设置免密码登录?

答:Hadoop集群运行时,NameNode要远程启动DataNode守护进程,

NameNode和DataNode之间需要远程SSH通信。所以我们需要安装SSH。但

是Hadoop没有区分完全分布式和伪分布式,对于伪分布式Hadoop仍然会采

用与集群相同的处理方式,按次序启动DataNode进程,只不过在伪分布式中

NameNode和DataNode者B为localhost,所以对于伪分布式,也必须要安装SSH。

3.Hadoop伪分布式core-site.xml需要配置哪些属性,每个属性的作用是

什么?

答:<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop//hadoop-2.7.1/tmp</value>

〈description〉设置hadoop默认配置目录〈/description〉

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

〈description,设置hdfs集群访问路径〈/description〉

</property>

</configuration>

hadoop.tmp.dir用于设置hadoop默认配置目录,fs.defaultFS用于设置hdfs

集群访问路径。

4.Hadoop伪分布式hdfs-site.xml需要配置哪些属性,每个属性的作用是

什么?

答:<configuration>

<property>

<name>dfs.replication</name>

<value>l</value>

</property>

<property>

<name>.dir</name>

<value>file:/usr/local/hadoop/hadoop-2.7.1/tmp/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/usr/local/hadoop/hadoop-2.7.1/tmp/dfs/data</value>

</property>

</configuration>

dfs.replication用于设置文件备份副本数,.dir是保存

Fslmage镜像的目录,作用是存放hadoop的名称节点namenode里的metadata;

dfs.datanode.data.dir是存放HDFS文件系统数据文件的目录,作用是存放

hadoop的数据节点datanode里的多个数据块。

5.使用HDFS命令进行如下操作:在HDFS上创建一个文件夹test,本地

上传一个文件到test目录下,浏览该文件的内容。

答:可以参考如下格式

hdfsdfs-mkdir/test

hdfsdfs-put./test.txt/test

hdfsdfs-cat/test/test.txt

项目四

1.常用的大数据采集工具有哪些?

答:Flume和Kafka,scribe等。

2.数据预处理的作用是什么,有哪几种数据预处理的方法?

答:从数据源采集的原始数据一般都是“脏”的,所谓“脏”就是数据

不正常,会影响后续数据存储和处理过程,甚至数据分析的准确性。常见的

“脏”数据有数据缺失、数据值异常、数据格式不合要求等,这时候就需要

我们对原始数据进行数据预处理操作,保证数据采集的数据质量,以便后续

步骤的顺利进行。

一般数据预处理主要分为以下几个方面数据清洗,数据转换,数据集成,

数据规约。

3.什么是爬虫,爬虫的作用是什么?

答:网络爬虫是一个模拟人类请求网站行为的程序或脚本。网络爬虫可

以自动请求网页并使用一定的规则把我们所需要的有价并值的数据抓取下

来。

4.网页的基本结构包含哪些?

答:网页一般由三部分组成,分别是HTML(超文本标记语言)、CSS(层

叠样式表)和JavaScript(活动脚本语言)。其中,HTML是整个网页的框

架。整个网页由一些成对出现的HTML标签组成。一个网页一般分为有head

和body两部分,body内部可以包含一些HTML标签,HTML标签里填充具体

的网页内容,同时HTML标签可以具有属性,比如href属性用于设置该标签

被点击时进行超链接跳转。CSS主要负责定义网页的外观样式,比如长,宽,

颜色等等。

5.爬虫程序如何进行数据爬取?

答:爬虫爬取网页数据的基本过程类似于我们浏览网页的过程。主要分

为两个步骤。

(1)Http-Request

在Http-Request阶段,爬虫程序对需要爬取数据的网页服务器发送Http

请求,并等待网页服务器的Http响应。

(2)Http-Response

在Http-Response阶段,网页服务器接收到请求后,验证请求的合法性,

然后将爬虫程序请求的网页数据封装好,发送Http响应。爬虫程序接收网页

服务器响应,经过程序代码的解析处理,获取需要爬取的网页内容。

项目五

1.大数据计算框架的类别有哪些?常见的大数据计算框架有哪些?

2.画出HDFS架构图。

3.什么叫NoSQL数据库,NoSQL数据库的作用是什么?

答:非关系(NoSQL)数据库是一种易扩展、大数据量、高性能和灵活

数据模型的数据库。NoSQL数据库主要用于存储非结构化数据和半结构化数

据。

4.HBase数据库前身是什么?

答:谷歌bigtableo

5.HBase数据库是哪种NoSQL数据库?HBase如何标识每条数据?

答:HBase是基于Hadoop的面向列的NoSQL数据库。HBase的数据存

储在数据单元中,每个数据单元通过行键、列簇、列限定符和时间戳共同

组成的索引来标识的。

6.叙述HBase数据库如何进行数据存储。

答:假设有一张表,HBase会根据行键的值对该表中的行进行分区,每个

行区间构成一个分区(Region),分区内包含了位于这个行区间内的所有

数据。默认一张表的初始分区数为2个,随着表中数据不断增加,Region

不断增大,当增大到超过阈值的时候,一个Region就会分为两个Region。

表中的行越来越多,Region就越来越多。这么多Region需要一个“管家”

来管理,这个管家就是RegionServeroRegionServer的管理原则为每个

RegionServer负责管理一个或多个Regiono不同的Region可以分布在不

同的RegionServer_h,但一个Reg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论