合集 – 分布式数据处理-《Spark编程基础》(Scala版)课后答案(7)
1.《Spark编程基础》(Scala版)第一章简答题答案(自制)05-162.《Spark编程基础》(Scala版)第二章简答题答案(自制)05-163.《Spark编程基础》(Scala版)第三章简答题答案(自制)05-164.《Spark编程基础》(Scala版)第四章简答题答案(自制)05-165.《Spark编程基础》(Scala版)第六章简答题答案(自制)05-166.《Spark编程基础》(Scala版)第七章简答题答案(自制)05-167.《Spark编程基础》(Scala版)第八章简答题答案(自制)05-16
收起
1 大数据技术概述
简答题
T1:请阐述大数据处理的基本流程。🌱
答:大数据的基本处理流程,主要包括数据采集、存储管理、处理分析、结果呈现等环节。
T2:请阐述大数据的计算模式及其代表产品。
答:
大数据计算模式 | 解决问题 | 代表产品 |
---|---|---|
批处理计算 | 针对大规模数据的批量处理 | MapReduce、Spark 等 |
流计算 | 针对流数据的实时计算 | Flume、Storm等 |
图计算 | 针对大规模图结构数据的处理 | GraphX、Hama等 |
查询分析计算 | 大规模数据的存储管理和查询分析 | Hive等 |
T3 请列举 Hadoop 生态系统的各个组件及其功能。🌱
答:
① HDFS:是 Hadoop 分布式文件系统;提供了廉价服务器集群中进行大规模分布式文件存储的能力。
主从结构:一个 HDFS 集群包括一个名称节点和若干数据节点。支持并发访问数据节点,加快访问速度。
② MapReduce:是一种分布式并行编程模型;用于大规模数据集的并行运算。
迭代式操作:分布式文件系统的大规模数据集会切片成多个小数据块,各个小数据块交个不同的 Map 任务并行处理,输出作为 Reduce 的输入,Reduce 输出后会写回分布式文件系统。
③ YARN:是负责集群资源调度管理的组件。
集群上可以部署 YARN,在 YARN 之上又可以部署其他计算框架,而 YARN 主要就负责为每个框架进行资源调度。
④ HBase:是一个高可靠、高性能、面向列、可伸缩的分布式数据库;主要用来存储非结构化和半结构化的松散数据,同时支持超大规模的数据存储。
于 HDFS 相比,没有名称节点数据节点这种东西,数据是通过多维的稀疏表格进行存储;
⑤ Hive:是一个基于 Hadoop 数据仓库的工具;可以用于对存储在 Hadoop 文件中的数据集用内置的 HiveSQL 进行管理。
作为一个工具,有类似数据库 SQL 语言的查询语言——HiveSQL;可以将 HiveQL 语句快速转换成 MapReduce 使用。
⑥ Flume:是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输系统。
能在日志系统中筛选数据发送方来收集数据,也能对数据进行改写,转交到数据接收方。
⑦ Sqoop:用于改进数据的互操作性,支持 Hadoop 和关系数据库之间交换数据的工具。
类似于你一个笔记软件的文件格式能够通过格式转化工具(这里就类似于 Sqoop)转化为其他格式,其他格式也能通过这个工具转回来。
T4 分布式文件系统 HDFS 的名称节点和数据节点的功能分别是什么?
答:
① 名称节点:作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。
② 数据节点:通常一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。
T5 试阐述 MapReduce 的基本设计思想。
答:MapReduce 的基本设计思想是“计算向数据靠拢”。大数据背景下移动计算比移动数据更加经济。本着这个理念,在一个集群中,只要有可能,MapReduce 框架就会将 Map 程序就近地在 HDFS 数据所在的节点运行,即将计算节点和存储节点放在一起运行,从而减少了节点间的数据移动开销。
T6 YARN 的主要功能是什么?使用 YARN 可以带来哪些好处?
答:
① 为在 YARN 之上部署的各种计算框架提供统一的资源调度管理服务(包括 CPU、内存等资源),并且能够根据各种计算框架的负载需求,调整各自占用的资源,实现集群资源共享和资源弹性收缩。
② (1) 提高集群的利用率。(2) 避免数据跨集群移动。(3)降低企业运维成本。
T7 试阐述 Hadoop 生态系统中 HBase 与其他部分的关系。
答:
并行计算、协同、存储:
① HBase 利用 MapReduce 来处理 HBase 中的海量数据,实现高性能计算;
② 利用 Zookeeper 作为协同服务,实现稳定服务和失败恢复;
③ 使用 HDFS 作为高可靠的底层存储,利用廉价集群提供海量数据存储能力;
为了方便数据处理,
④ Sqoop 为 HBase 提供了高效、便捷的 RDBMS 数据导入功能;
⑤ Pig 和 Hive 为 HBase 提供了高层语言支持。
T8 数据仓库 Hive 的主要功能是什么?
答:对存储在 Hadoop 文件中的数据集用内置的 HiveSQL 进行管理;也可以将其查询语言 HiveSQL 的语句快速转换成 MapReduce 任务进行运行。
T9 Hadoop 主要有哪些缺点?相比之下,Spark 具有哪些优点?🌱
答:
① Hadoop 的缺点:
(1)表达能力有限。计算都必须要转化成 Map 和 Reduce 两个操作,难以描述复杂的数据处理过程;
(2)磁盘 I/O 开销大。每次执行时都需要从磁盘读取数据,并且在计算完成后需要将中间结果写入到磁盘中,I/O开销较大;
(3)延迟高。一次计算可能需要分解成一系列按顺序执行的 MapReduce 任务,任务之间的衔接由于涉及到 I/O 开销,会产生较高延迟。而且,在前一个任务执行完成之前,其他任务无法开始,因此, 难以胜任复杂、多阶段的计算任务。
② Spark 的优点:
(1)Spark 的计算模式也属于 MapReduce ,但不局限于 Map 和 Reduce 操作,还提供了多种数据集操作类型,编程模型比MapReduce 更灵活;
(2)Spark 提供了内存计算,中间结果直接放到内存中,带来了更高的运算效率;
(3)Spark 基于 DAG 的任务调度执行机制,要优于 MapReduce 的迭代执行机制。
T10 如何实现 Spark 与 Hadoop 的统一部署?
答:在 YARN 之上除了部署 Hadoop 的原有计算框架,如 MapReduce,同时,部署 Spark 计算框架,实现 Spark 和 Hadoop 的统一部署。
T11 Flink 相对于 Spark 而言,在实现机制上有什么不同?
答:
① Flink 支持增量迭代,具有迭代进行自动优化的功能。
② 两者均支持流计算,但是 Flink 是一行一行处理数据,而 Spark 是基于 RDD 的小批量处理。
T12 Beam 的设计目的是什么,具体有哪些优点?
答:
① 让开发者可以使用 Beam SDK 来创建数据处理管道,让开发者的程序可以在任何支持的执行引擎上运行。
② Beam 通过使用一套高层抽象的 API 屏蔽了多种计算引擎的区别,开发者只需编写一套代码就可以运行在不同的计算引擎上。