Apache Spark 常見問題集

Spark 與 Apache Hadoop 有何關係?

Spark 是一個快速且通用的處理引擎,與 Hadoop 資料相容。它可以在 Hadoop 群集透過 YARN 或 Spark 的獨立模式執行,並且可以在 HDFS、HBase、Cassandra、Hive 和任何 Hadoop InputFormat 中處理資料。它旨在執行批次處理(類似於 MapReduce)和串流、互動式查詢和機器學習等新工作負載。

誰在實際環境中使用 Spark?

截至 2016 年,調查顯示超過 1000 個組織在實際環境中使用 Spark。其中一些組織列在 技術支援頁面Spark Summit

Spark 可以擴充到多大的群集?

許多組織在數千個節點的叢集上執行 Spark。我們所知最大的叢集有 8000 個節點。在資料大小方面,Spark 已被證明可以良好處理達數 PB 的資料。它已用於將 100 TB 的資料排序,速度比 Hadoop MapReduce 快 3 倍,且僅使用十分之一的機器,贏得 2014 Daytona GraySort Benchmark,以及 排序 1 PB。多個生產工作負載 使用 Spark 對 PB 級資料執行 ETL 和資料分析

我的資料是否需要放入記憶體才能使用 Spark?

不需要。如果資料不放入記憶體,Spark 的運算子會將資料溢位到磁碟,讓它可以在任何大小的資料上順利執行。同樣地,不放入記憶體的快取資料集會在需要時溢位到磁碟或重新計算,這由 RDD 的 儲存層級 決定。

我可以在叢集上執行 Spark 的方式為何?

您可以使用 獨立部署模式,它只需要在每個節點上安裝 Java,或使用 MesosYARN 叢集管理員。如果您想在 Amazon EC2 上執行,AMPLab 提供 EC2 腳本 以自動啟動叢集。

請注意,您也可以在沒有任何特殊設定的情況下,在本地執行 Spark(可能在多個核心上),只要將 local[N] 傳遞為主控 URL,其中 N 是您想要的平行執行緒數目。

我需要 Hadoop 才能執行 Spark 嗎?

不需要,但是如果您在叢集上執行,您將需要某種形式的共用檔案系統(例如,在每個節點上以相同路徑掛載的 NFS)。如果您有這種檔案系統,您只要在獨立模式下部署 Spark 即可。

Spark 是否需要修改版本的 Scala 或 Python?

不需要。Spark 不需要變更 Scala 或編譯器外掛程式。Python API 使用標準的 CPython 實作,並且可以呼叫 Python 的現有 C 函式庫,例如 NumPy。

Spark Streaming 和 Spark Structured Streaming 有什麼不同?我應該使用哪一個?

Spark Streaming 是 Spark 串流引擎的前一代。Spark Streaming 不再更新,並且是一個舊專案。Spark Streaming 提供一個稱為離散串流或 DStream 的高階抽象,它表示一個連續的資料串流。在內部,DStream 表示為一連串的 RDD。

Spark Structured Streaming 是 Spark 串流引擎的現行版本,功能更豐富、更易於使用且更具可擴充性。Spark Structured Streaming 建構在 Spark SQL 引擎之上,讓您可以用與對靜態資料執行批次運算相同的方式表達串流運算。

您應該使用 Spark Structured Streaming 來建構使用 Spark 的串流應用程式和管線。如果您有建構在 Spark Streaming 上的舊版應用程式和管線,您應該將它們移轉到 Spark Structured Streaming。

我在哪裡可以找到 Spark 標誌的高解析度版本?

我們在此提供版本:黑色標誌白色標誌。請注意,Spark、Apache Spark 和 Spark 標誌是 Apache 軟體基金會的商標,在使用這些標誌時請遵循基金會的商標政策

我可以提供基於 Spark 的商業軟體或服務嗎?

可以,只要您遵守 Apache 軟體基金會的軟體授權商標政策。特別注意,對於第三方產品如何使用「Spark」名稱有嚴格的限制(通常不允許基於 Spark 的名稱)。請參閱我們的商標政策摘要

我如何為 Spark 做出貢獻?

請參閱貢獻 Spark wiki以取得更多資訊。

我在哪裡可以獲得更多協助?

請發布在 StackOverflow 的apache-spark標籤或Spark 使用者郵件清單。如需更多資訊,請參閱有問題嗎?。我們很樂意提供協助!

最新消息

檔案