跳转至

2019-2020-1期末B卷

2017级 B卷

一、单项选择题(每题2分,共10分)

  1. Apache Giraph依赖于以下哪个系统( ) A. HDFS B. MapReduce C. Spark D. Flink

  2. 以下哪个系统提供资源管理功能( ) A. Yarn B. MapReduce C. Beam D. Dataflow

  3. 以下哪个系统本身提供迭代计算功能,而无需用户显示编写循环( ) A. Spark B. Beam C. Giraph D. 以上答案都不对

  4. 在Lambda架构中,以下哪个系统适合用作批处理层( ) A. Yarn B. MapReduce C. Storm D. ZooKeeper

  5. 以下哪项技术是分布式计算系统经常采用的( ) A. RPC B. 进程间通信 C. 序列化 D. 以上答案都对

二、判断题(每题2分,共10分,对的打√,错的打×)

  1. 由于MPI不具备容错功能,所以它不可以用于分布式计算。( )
  2. 在MapReduce 的Shuffle 过程中,Map将计算结果输出到HDFS,然后 Reduce 再从HDFS 读取数据进一步计算。( )
  3. 为了提升数据传输效率,Flink的消息传递机制可以将多个记录缓存起来一并进行传输。( )
  4. 与MapReduce 不同,Storm既可进行批处理,也可进行流计算。( )
  5. RDD 可以进行一系列的转换,是支持容错的数据集合。( )

三、填空题(每空2分,共10分,中英文作答均可)

  1. 我们利用 Giraph编写 K-Means 程序时,需将中心点作为____。
  2. 在Flink 架构中,作为主节点的部件的名称是____。
  3. Yarn中____封装了内存、CPU等计算资源。
  4. Storm 描述计算过程的有向无环图由_和_组成。

四、简答题(共30分,需用连贯通顺的语句作答)

  1. (6分)MapReduce 计算框架存在哪些局限性?
  2. (4分)Storm、Flink均可用于流计算,二者在数据传输方式上有何种区别?
  3. (6分)Spark 和 Flink 二者均有检查点进行容错,但在具体实现上有差异, a) Spark 检查点中保存什么内容?如何写检查点?(3分) b) Flink 检查点中保持什么内容?如何写检查点?(3分)
  4. (4分)简述 Spark Stage 内部流水线机制的涵义?Flink中是否也有类似的机制?
  5. (6分)HDFS 采用一次写入多次读取的文件访问模型, a) 请举出某一应用的例子,说明这种方式有怎样的优点?(3分) b) 请举出某一应用的例子,说明这种方式有怎样的缺点?(3分)
  6. (4分)针对 Lambda架构的缺陷,有必要将批处理和流计算系统进行融合,批流融合系统设计思路有哪两种?

五、分析论述题(共40分,需用连贯通顺的语句作答)

  1. (12分)假定输入数据是静态的,我们经常使用MapReduce、Spark RDD 和 Flink DataSet 来实现迭代算法, a) 请分别给出 MapReduce、Spark 和Flink迭代计算过程伪码框架;(9分) b) 请对以上代码的执行效率进行分析。(3分)

  2. (16分)Spark既可以与Yarn一起部署,又可以独立部署。在Yarn 部署方式中,又分为Client和Cluster 模式, a) 画出 Client 模式的架构图,并说明各部件的作用;(6分) b) 画出 Cluster 模式的架构图,并说明各部件的作用;(6分) c) 二者之间有什么差异?分别适用于什么场景?(4分)

  3. (12分)在关于Dataflow 编程模型运行示意图中,横轴表示事件时间,纵轴表示处理时间,圆圈中表示元素的值,弯曲的虚线表示水位线。假定程序实现了长度为2分钟的固定窗口,窗口中执行的操作是取元素的最小值,触发器在水位线达到时触发窗口计算,并累积和撤回方式修正结果。

image-20260519091829451

a) 假定系统当前时间为12:02,4个窗口的计算结果分别是多少?(4分) b) 假定系统当前时间为12:08,4个窗口的计算结果分别是多少?(4分) c) 假定系统当前时间为12:10,4个窗口的计算结果分别是多少?(4分)