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 大數據高級證書課程