大数据技术原理及应用林子雨版课后习题答案解析 - 图文 下载本文

***

专业资料整理分享

6、请描述 HDFS联邦中“块池”的概念,并分析为什么 HDFS联邦中的一个名称

节点失效,也不会影响到与它相关的数据节点继续为其他名称节点提供服务。

答:HDFS联邦拥有多个独立的命名空间,其中,每一个命名空间管理属于自己 的一组块,这些属于同一个命名空间的块构成一个“块池”。

每个数据节点会为多个块池提供块的存储。 可以看出,数据节点是一个物理逻辑, 而块池则属于逻辑概念, 一个块池是一组块的逻辑集合, 块池中的各个块实际上 是存储在各个不同的数据节点中的。因此

HDFS联邦中的一个名称节点失效,也

不会影响到与它相关的数据节点继续为其他名称节点提供服务。 7、请阐述 MapReduce1.0体系结构中存在的问题。 答:(1)存在单点故障;

(2)JobTracker “大包大揽”导致任务过重; (3)容易出现内存溢出; (4)资源划分不合理。

8、请描述 YARN架构中各组件的功能。 答:

组件

ResourceManager

①处理客户端请求

②启动/ 监控 ApplicationMaster ③监控 NodeManager ④资源分配与调度

ApplicationMaster

①为应用程序申请资源, 并分配给内部 任务

②任务调度、监控与容错

NodeManager

①单个节点上的资源管理

功能

完美 WORD格式编辑

***

***

专业资料整理分享

②处理来自 ResourceManager的命令 ③处理来自 ApplicationMaster

的命令

9、请描述在 YARN框架中执行一个 MapReduce程序时,从提交到完成需要经历 的具体步骤。

答:①用户编写客户端应用程序,向 ApplicationMaster

YARN提交应用程序,提交的内容包括

的命令、用户程序等。

程序、启动 ApplicationMaster

②YARN中的 ResourceManager负责接收和处理来自客户端的请求。接到客户端 应用程序请求后, ResourceManager里面的调度器会为应用程序分配一个容器。 同时,ResourceManager的应用程序管理器会与该容器所在的 为该应用程序在该容器中启动一个 ApplicationMaster ③ApplicationMaster

被创建后会首先向 ResourceManager注册, 从而使得用户

NodeManager通信,

可以通过 ResourceManager来直接查看应用程序的运行状态 ④ApplicationMaster 源。

⑤ResourceManager以“容器”的形式向提出申请的 ApplicationMaster 源,一旦 ApplicationMaster 进行通信,要求它启动任务。 ⑥当 ApplicationMaster

要求容器启动任务时, 它会为任务设置好运行环境 (包

申请到资源后,就会与该容器所在的

分配资

采用轮询的方式通过 RPC协议向 ResourceManager申请资

NodeManager

括环境变量、 JAR包、二进制程序等),然后将任务启动命令写到一个脚本中, 最后通过在容器中运行该脚本来启动任务。

⑦各个任务通过某个 RPC协议向 ApplicationMaster ApplicationMaster 重启任务。

⑧应用程序运行完成后, ApplicationMaster 理器注销并关闭自己。若 ApplicationMaster

向 ResourceManager的应用程序管 因故失败, ResourceManager中的

汇报自己的状态和进度, 让

可以随时掌握各个任务的运行状态, 从而可以在任务失败时

应用程序管理器会监测到失败的情形, 然后将其重新启动, 直到所有任务执行完 毕。

完美 WORD格式编辑

***

***

专业资料整理分享

10、请对 YARN和 MapReduce1.0框架进行优劣势对比分析。

答:(1)大大减少了承担中心服务功能的 ResourceManager的资源消耗。 MapReduce1.0中的 JobTracker 需要同时承担资源管理、 任务调度和任务监控等 三大功能,而 YARN中的 ResourceManager只需要负责资源管理,需要消耗大量 资源的任务调度和监控重启工作则交由

ApplicationMaster

来完成。由于每个作

业都有与之关联的独立的 ApplicationMaster ,所以,系统中存在多个作业时, 就会同时存在多个 ApplicationMaster

,这就实现了监控任务的分布化,不再像

MapReduce1.0那样监控任务只集中在一个 JobTracker 上。

(2)MapReduce1.0既是一个计算框架,又是一个资源管理调度框架,但是只能 支持 MapReduce编程模型。而 YARN则是一个纯粹的资源调度管理框架,在它上 面可以运行包括 MapReduce在内的不同类型的计算框架, 默认类型是 MapReduc。e 因为,YARN中的 ApplicationMaster

是可变更的,针对不同的计算框架,用户

可以采用任何编程语言自己编写服务于该计算框架的

ApplicationMaster

。比

如,可以编写一个面向 MapReduce计算框架的 ApplicationMaster ,从而使得

MapReduce计算框架可以运行在 YARN框架之上。同理,还可以编写面向 Spark、

Storm 等计算框架的 ApplicationMaster ,从而使得 Spark、Storm 等计算框架也

可以运行在 YARN框架之上。

(3)YARN中的资源管理比 MapReduce1.0更加高效。 YARN采用容器为单位进行 资源管理和分配,而不是以槽为单位,避免了 MapReduce1.0中槽的闲置浪费情

况,大大提高了资源的利用率。

11、请分别描述 Pig、Tez 和 Kafka 的功能。 答:①Pig 是 Hadoop生态系统的一个组件,提供了类似

SQL的 Pig Latin

语言

(包含 Filter 、GroupBy、Join 、OrderBy 等操作,同时也支持用户自定义函数) ,允许用户通过编写简单的脚本来实现复杂的数据分析,而不需要编写复杂的 MapReduce应用程序, Pig 会自动把用户编写的脚本转换成 MapReduce作业在 Hadoop集群上运行,而且具备对生成的 MapReduce程序进行自动优化的功能, 所以用户在编写 Pig 程序的时候, 不需要关心程序的运行效率, 这就大大减少了 用户编程时间。

②Tez是 Apache开源的支持 DAG作业的计算框架,直接源于 MapReduce框架, 核心思想是将 Map和Reduce两个操作进一步进行拆分, 即 Map被拆分成 Input 、 Processor 、Sort 、Merge和 Output ,Reduce被拆分成 Input 、Shuffle 、Sort 完美 WORD格式编辑

***

***

专业资料整理分享

Merge、Processor 和 Output 等,经过分解后的这些元操作可以进行自由任意组 合产生新的操作,经过一些控制程序组装后就可形成一个大的

DAG作业。

通过 DAG作业的方式运行 MapReduce作业,提供了程序运行的整体处理逻辑, 就 可以去除工作流当中多余的 Map阶段,减少不必要的操作, 提升数据处理的性能。 Hortonworks 把 Tez应用到数据仓库 Hive 的优化中, 使得性能提升了约 100 倍。 ③Kafka 是由 LinkedIn 公司开发的一种高吞吐量的分布式发布订阅消息系统, 用户通过 Kafka 系统可以发布大量的消息,同时也能实时订阅消费消息。

Kafka

设计的初衷是构建一个可以处理海量日志、 用户行为和网站运营统计等的数据处 理框架。

第九章

1、Spark 是基于内存计算的大数据计算平台,试述 答:Spark 具有如下 4 个主要特点:

①运行速度快;②容易使用;③通用性;④运行模式多样。

Spark 的主要特点。

2、Spark 的出现是为了解决 Hadoop MapReduce的不足,试列举 Hadoop MapReduce的几个缺陷,并说明 Spark 具备哪些优点。 答:(1)Hadoop存在以下缺点:

①表达能力有限;②磁盘 IO 开销大;③延迟高 (2)Spark 主要有如下优点:

①Spark 的计算模式也属于 MapReduc,e 但不局限于 Map和 Reduce操作,还提供 了多种数据集操作类型,编程模型比

MapReduce更灵活;

②Spark 提供了内存计算, 中间结果直接存放内存中, 带来更高的迭代运算效率; ③Spark 基于 DAG的任务调度执行机制,要优于 MapReduce的迭代执行机制。

完美 WORD格式编辑

***