2022 年超过 15 个 Apache Spark 面试问答

已发表: 2021-01-08

任何熟悉 Apache Spark 的人都知道为什么它会成为当今最受欢迎的大数据工具之一——它允许超快速计算。

Spark 支持快速大数据处理这一事实使其受到全球公司的欢迎。 从亚马逊、阿里巴巴、eBay 和雅虎等大公司,到行业中的小公司,Spark 已经获得了大量的追随者。 正因为如此,公司一直在寻找具有 Spark 领域专业知识的熟练大数据专业人员。

对于每个希望获得与大数据 (Spark) 个人资料相关的工作的人,您必须首先成功通过 Spark 面试。 这里有一些东西可以让你更接近你的目标——15 个最常见的 Apache Spark 面试问题!

  1. 什么是火花?

Spark 是一个允许实时处理的开源集群计算大数据框架。 它是一个通用数据处理引擎,能够处理不同的工作负载,如批处理、交互式、迭代和流式处理。 Spark 执行有助于提高数据处理速度的内存计算。 它可以独立运行,也可以在 Hadoop 上或在云中运行。

  1. 什么是 RDD?

RDD 或弹性分布式数据集是 Spark 的主要数据结构。 它是 Spark 中的一个基本抽象,以对象格式表示数据输入。 RDD 是一个只读的、不可变的对象集合,其中每个节点都被划分为更小的部分,这些部分可以在集群的不同节点上进行计算,以实现独立的数据处理。

  1. 区分 Apache Spark 和 Hadoop MapReduce。

Apache Spark 和 Hadoop MapReduce 之间的主要区别在于:

  • Spark 更容易编程,不需要任何抽象。 MapReduce 是用 Java 编写的,难以编程。 它需要抽象。
  • Spark 有一个交互模式,而 MapReduce 没有它。 但是,像 Pig 和 Hive 这样的工具可以更轻松地使用 MapReduce。
  • Spark 允许在同一个集群中进行批处理、流式处理和机器学习。 MapReduce 最适合批处理。
  • Spark 可以通过 Spark Streaming 实时修改数据。 MapReduce 中没有这样的实时配置——您只能处理一批存储的数据。
  • Spark 通过在内存中缓存部分结果来促进低延迟计算。 这需要更多的内存空间。 相反,MapReduce 是面向磁盘的,允许永久存储。
  • 由于 Spark 可以在内存中执行处理任务,因此它处理数据的速度比 MapReduce 快得多。
  1. 什么是稀疏向量?

稀疏向量由两个并行数组组成,一个用于索引,另一个用于值。 它们用于存储非零条目以节省内存空间。

  1. Spark 中的分区是什么?

分区用于创建更小的逻辑数据单元,以帮助加快数据处理。 在 Spark 中,一切都是分区的 RDD。 分区以最小的网络流量并行化分布式数据处理,以将数据发送到系统中的各个执行程序。

  1. 定义转型和行动。

Transformation 和 Action 都是在 RDD 中执行的操作。

当 Transformation 函数应用于一个 RDD 时,它会创建另一个 RDD。 转换的两个示例是 map() 和 filer() - map() 将传递给它的函数应用于 RDD 的每个元素并创建另一个 RDD,filter() 通过从当前 RDD 中选择组件来创建一个新的 RDD,这些组件传递函数参数。 它仅在动作发生时触发。

Action 将数据从 RDD 检索到本地机器。 它通过使用沿袭图将数据加载到原始RDD中来触发执行,执行所有中间转换,并将最终结果返回给Driver程序或将其写入文件系统。

  1. 什么是谱系图?

在 Spark 中,RDD 相互依赖。 RDD 之间这些依赖关系的图形表示称为沿袭图。 使用来自血统图的信息,可以按需计算每个 RDD——如果丢失了持久性 RDD 的一部分,则可以使用血统图信息恢复丢失的数据。

  1. SparkCore 的目的是什么?

SparkCore 是 Spark 的基础引擎。 它执行许多重要功能,例如容错、内存管理、作业监控、作业调度以及与存储系统的交互。

  1. 命名 Spark 生态系统的主要库。

Spark 生态系统中的主要库有:

  • Spark Streaming – 用于启用实时数据流。
  • Spark MLib- 它是 Spark 的机器学习库,是常用的学习算法,如分类、回归、聚类等。
  • Spark SQL – 它通过应用标准可视化或商业智能工具帮助对 Spark 数据执行类似 SQL 的查询。
  • Spark GraphX – 它是用于图形处理的 Spark API,用于开发和转换交互式图形。
  1. 什么是纱线? 是否需要在 YARN 集群的所有节点上安装 Spark?

Yarn 是 Spark 中的一个中央资源管理平台。 它支持跨 Spark 集群交付可扩展的操作。 Spark 是数据处理工具,YARN 是分布式容器管理器。 正如 Hadoop MapReduce 可以在 YARN 上运行一样,Spark 也可以在 YARN 上运行。

不必在 YARN 集群的所有节点上安装 Spark,因为 Spark 可以在 YARN 之上执行——它独立于其安装运行。 它还包括在 YARN 上运行的不同配置,例如 master、queue、deploy-mode、driver-memory、executor-memory 和 executor-cores。

  1. 什么是催化剂框架?

Catalyst 框架是 Spark SQL 中独有的优化框架。 催化剂框架的主要目的是使 Spark 能够通过添加新的优化来自动转换 SQL 查询以开发更快的处理系统。

  1. Spark 中有哪些不同类型的集群管理器?

Spark 框架包含三种类型的集群管理器:

  1. Standalone – 用于配置集群的主管理器。
  2. Apache Mesos – Spark 的内置通用集群管理器,可以运行 Hadoop MapReduce 和其他应用程序。
  3. Yarn – 用于处理 Hadoop 中资源管理的集群管理器。
  1. 什么是工作节点?

工作节点是主节点的“从节点”。 它指的是可以在集群中运行应用程序代码的任何节点。 因此,主节点将工作分配给执行分配任务的工作节点。 工作节点处理存储在其中的数据,然后向主节点报告。

  1. 什么是 Spark 执行器?

Spark Executor 是一个运行计算并将数据存储在工作节点中的进程。 每次 SparkContext 与集群管理器连接时,它都会在集群内的节点上获取一个 Executor。 这些执行器执行由 SparkContext 分配给它们的最终任务。

  1. 什么是镶木地板文件?

Parquet 文件是一种列格式文件,它允许 Spark SQL 进行读写操作。 使用 parquet 文件(列格式)有很多优点:

  1. 列存储格式占用的空间更少。
  2. 列存储格式可以检查 IO 操作。
  3. 它允许您轻松访问特定的列。
  4. 它遵循特定类型的编码并提供更好的汇总数据。

在那里——我们已经让你轻松进入 Spark。 Spark 中的这 15 个基本概念将帮助您开始使用 Spark。

如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。

在 upGrad 查看我们的其他软件工程课程。

提升自己并为未来做好准备

超过 400 小时的学习时间。 14 种语言和工具。 IIIT-B 校友身份。
IIIT Bangalore 大数据高级证书课程