使用 Azure HDInsight 為 Apache Spark 進行疑難排解
了解在 Apache Ambari 中使用 Apache Spark 承載時最常發生的問題及其解決方法。
如何使用 Apache Ambari 在叢集上設定 Apache Spark 應用程式?
您可以微調 Spark 組態值,以協助避免 Apache Spark 應用程式 OutofMemoryError
例外狀況。 下列步驟顯示 Azure HDInsight 中的預設 Spark 組態值:
使用您的叢集認證登入在
https://CLUSTERNAME.azurehdidnsight.net
的 Ambari。 初始畫面會顯示概觀儀表板。 HDInsight 4.0 之間有些許外觀上的差異。瀏覽至 [Spark2] > [Configs]。
在設定清單中,選取並展開 [Custom-spark2-defaults]。
尋找需要調整的設定值,例如 spark.executor.memory。 在本案例中,值 9728m 太高。
將值設為建議的設定。 這項設定的建議值為 2048m。
儲存此值,然後儲存設定。 選取 [儲存]。
註記設定變更,然後選取 [儲存]。
如有任何設定需要注意,您會收到通知。 記下項目,然後選取 [仍要繼續]。
每次儲存設定時,系統都會提示您重新啟動服務。 選取重新啟動。
確認重新啟動。
您可以檢閱執行中的處理序。
您可以新增設定。 在設定清單中選取 [Custom-spark2-defaults],然後選取 [新增屬性]。
定義新的屬性。 您可以使用特定設定 (例如資料類型) 的對話方塊定義單一屬性。 或者,您也可以使用一行一定義的方式定義多個屬性。
在本例中,spark.driver.memory 屬性是以值 4g 定義。
儲存設定,然後重新啟動服務,如步驟 6 和 7 中所述。
這些變更為全叢集的,但可在提交 Spark 作業時予以覆寫。
如何使用 Jupyter Notebook 在叢集上設定 Apache Spark 應用程式?
在 Jupyter Notebook 第一個資料格中的 %%configure 指示詞後面,以有效的 JSON 格式指定 Spark 設定。 請視需要變更實際值:
如何使用 Apache Livy 在叢集上設定 Apache Spark 應用程式?
使用 cURL 等 REST 用戶端,將 Spark 應用程式提交給 Livy。 使用類似下列的命令。 請視需要變更實際值:
curl -k --user 'username:password' -v -H 'Content-Type: application/json' -X POST -d '{ "file":"wasb://container@storageaccountname.blob.core.windows.net/example/jars/sparkapplication.jar", "className":"com.microsoft.spark.application", "numExecutors":4, "executorMemory":"4g", "executorCores":2, "driverMemory":"8g", "driverCores":4}'
如何使用 spark-submit 在叢集上設定 Apache Spark 應用程式?
使用類似下列的命令啟動 spark-shell。 請視需要變更設定的實際值:
spark-submit --master yarn-cluster --class com.microsoft.spark.application --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4 /home/user/spark/sparkapplication.jar
其他閱讀資料
Apache Spark job submission on HDInsight clusters (提交 HDInsight 叢集上的 Apache Spark 作業)
下一步
如果您沒有看到您的問題,或無法解決您的問題,請瀏覽下列其中一個管道以取得更多支援:
Debugging Spark application on HDInsight clusters (在 HDInsight 叢集中偵錯 Spark 應用程式)。
透過 Azure 社群支援獲得由 Azure 專家所提供的解答。
連線至 @AzureSupport,這是用來改善客戶體驗的官方 Microsoft Azure 帳戶。 將 Azure 社群連線到正確的資源:解答、支援和專家。
如果需要更多協助,您可在 Azure 入口網站提交支援要求。 從功能表列中選取 [支援] 或開啟 [說明 + 支援] 中樞。 如需詳細資訊,請參閱如何建立 Azure 支援要求。 Microsoft Azure 訂用帳戶包括訂用帳戶管理及帳務支援的存取權,而技術支援由其中一項 Azure 支援方案提供。