【hadoop期末复习】第十章 Spark 超详细讲解

** 本专栏的Hadoop复习计划文章内容主要包含以下几个部分:

【简单】学习通习题

【进阶】课本课后练习

【操作】相关章节实验回顾

最后一章了,大家加油!

学习通 - 习题

1. Spark SQL目前暂时不支持下列哪种语言

A.Java
B.Scala
C.Python
D.Lisp
我的答案:D

解析:

Scala是Spark的主要编程语言,但Spark还支持Java、Python、R作为编程语言


2. RDD操作分为转换(Transformation)和动作(Action)两种类型,下列属于动作(Action)类型的操作的是

A.map
B.filter
C.count
D.groupBy
我的答案:C

解析:

Spark RDD支持两种类型的操作:

  • 动作(action):在数据集上进行运算,返回计算值
  • 转换(transformation): 基于现有的数据集创建一个新的数据集

3. 下列说法错误的是

A.RDD采用惰性调用,遇到“转换(Transformation)”类型的操作时,只会记录RDD生成的轨迹,只有遇到“动作(Action)”类型的操作时才会触发真正的计算
B.Spark支持三种类型的部署方式:Standalone,Spark on Mesos,Spark on YARN
C.RDD提供的转换接口既适用filter等粗粒度的转换,也适合某一数据项的细粒度转换
D.在选择Spark Streaming和Storm时,对实时性要求高(比如要求毫秒级响应)的企业更倾向于选择流计算框架Storm
我的答案:C

解析:

C.RDD提供的转换接口既适用filter等粗粒度的转换,也适合某一数据项的细粒度转换

错误,RDD提供的转换接口都非常简单,都是类似map、filter、groupBy、join等粗粒度的数据转换操作,而不是针对某个数据项的细粒度修改(不适合网页爬虫)

4. 下列关于常见的动作(Action)和转换(Transformation)操作的API解释错误的是

A.take(n):返回数据集中的第n个元素
B.map(func):将每个元素传递到函数func中,并将结果返回为一个新的数据集
C.filter(func):筛选出满足函数func的元素,并返回一个新的数据集
D.count():返回数据集中的元素个数
我的答案:A

解析:

take(n) 返回前n个元素

【hadoop期末复习】第十章 Spark 超详细讲解_第1张图片

5. 下列大数据处理类型与其对应的软件框架不匹配的是

A.基于历史数据的交互式查询:Impala
B.基于实时数据流的数据处理:Storm
C.图结构数据的计算:Hive
D.复杂的批量数据处理:MapReduce
我的答案:C

解析:

【什么是图结构数据】

类似这样的数据:

【hadoop期末复习】第十章 Spark 超详细讲解_第2张图片

简单来说就是一些关系型数据,而hive是非关系型的数据存储

课本 - 课后习题

1. 试述spark的优点

  • 运行速度快
  • 容易使用
  • 通用性
  • 运行模式多样

2. 列举 hadoop mapreduce 的几个缺陷,并列举spark的优点

1)mapreduce的缺点

  • 表达能力有限
  • 磁盘I/O开销大
  • 延迟高

2)spark的优点

  • Spark的计算模式不局限于Map、Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活
  • Spark提供内存计算,中间结果直接存放在内存,减少了磁盘I/O开销
  • Spark基于DAG的任务调度机制,要优于MapReduce的迭代运行机制

3. BDAS认为目前的大数据处理可以分为哪几个类型

  • 复杂的批量数据处理:时间跨度通常在数十分钟数小时之间
  • 基于历史数据的交互式查询:时间跨度通常在数十秒数分钟之间
  • 基于实时数据流的数据处理:时间跨度通常在数百毫秒数秒之间

** 注:一些软件的应用场景,如下图所示

【hadoop期末复习】第十章 Spark 超详细讲解_第3张图片

4. 试述spark的生态系统

Spark的生态系统主要包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX 等组件,如下图所示:

【hadoop期末复习】第十章 Spark 超详细讲解_第4张图片

5. 从hadoop+storm架构转向spark架构可带来哪些好处

  • 实现一键式安装和配置,线程级别的任务监控、告警
  • 降低硬件集群、软件维护、任务监控和应用开发的难度
  • 便于做成统一的硬件、计算平台资源池

6. 试述 spark on yarn 的概念

  • Spark可以运行在 YARN 上,与 Hadoop 进行统一部署,即 “Spark on YARN”
  • 其架构如下图所示,资源管理和调度用 YARN分布式存储则以用HDFS

【hadoop期末复习】第十章 Spark 超详细讲解_第5张图片

7. 试述如下spark的几个主要概念:RDD、DAG、阶段、分区、窄依赖、宽依赖

1)RDD

弹性分布式数据集

2)DAG

有向无环图,可以反映RDD之间的依赖关系

3)阶段

作业调度的基本单位,包含一组任务,也称为任务集

4)分区

一个RDD就是一个分布式对象集合

每个RDD可以分成多个分区,每个分区都是一个数据集片段

5)窄依赖

父RDD的1个分区只被1个子RDD的1个分区所使用

6)宽依赖

父RDD的1个分区被1个子RDD的多个分区所使用的就是宽依赖

8. spark 对RDD的操作主要分为行动 action、转换 transformation 两种类型,它们的区别是什么

1)动作(action):在数据集上进行运算,返回计算值

  • 常用API包含:count()、collect()、first()、take(n)、reduce(func)、foreach(func)

【hadoop期末复习】第十章 Spark 超详细讲解_第6张图片

2)转换(transformation): 基于现有的数据集创建一个新的数据集

  • 常用API包含:filter(func)、map(func)、flatMap(func)、groupByKey(func)、reduceByKey(func)

【hadoop期末复习】第十章 Spark 超详细讲解_第7张图片

** 以上答案参考:大数据技术课后习题

实验回顾

** 参见我之前的文章:

【hadoop学习之路】Spark-shell RDD 实现词频统计

【hadoop学习之路】Spark-SQL 实验报告 RDD转DataFrame

你可能感兴趣的:(hadoop期末复习,分布式,spark,大数据,hadoop)