教學課程:使用 Synapse 工作區使用 IntelliJ 建立 Apache Spark 應用程式
本教學課程說明如何使用適用於 IntelliJ 的 Azure 工具組外掛程式來開發以 Scala 撰寫的 Apache Spark 應用程式,然後直接從 IntelliJ 集成開發環境 (IDE) 將它們提交至無伺服器 Apache Spark 集區。 您可以透過幾種方式使用外掛程式:
- 在Spark集區上開發和提交 Scala Spark 應用程式。
- 存取 Spark 集區資源。
- 在本機開發並執行 Scala Spark 應用程式。
在本教學課程中,您會了解如何:
- 使用適用於 IntelliJ 的 Azure 工具元件
- 開發 Apache Spark 應用程式
- 將應用程式提交至 Spark 集區
必要條件
Azure 工具組外掛程式 3.27.0-2019.2 – 從 IntelliJ 外掛程式存放庫安裝
Scala 外掛程式 – 從 IntelliJ 外掛程式存放庫安裝。
下列先決條件僅適用於 Windows 使用者:
當您在 Windows 電腦上執行本機 Spark Scala 應用程式時,可能會發生例外狀況,如 SPARK-2356 中所述。 因為 Windows 上遺漏 WinUtils.exe,因此會發生例外狀況。 若要解決此錯誤,請將 WinUtils 可執行文件下載到 C:\WinUtils\bin 之類的位置。 然後,將環境變數 新增HADOOP_HOME,並將變數的值設定為 C:\WinUtils。
建立 Spark 集區的 Spark Scala 應用程式
啟動 IntelliJ IDEA,然後選取 [ 建立新專案 ] 以開啟 [ 新增專案 ] 視窗。
從左窗格中選取 [Apache Spark/HDInsight ]。
從主視窗中選取 [Spark 專案與 Samples(Scala]。
從 [ 建置工具 ] 下拉式清單中,選取下列其中一種類型:
- 適用於 Scala 專案建立精靈的 Maven 支援。
- 用於管理 Scala 專案的相依性和建置的 SBT 。
選取 [下一步]。
在 [ 新增專案] 視窗中,提供下列資訊:
屬性 說明 專案名稱 輸入名稱。 本教學課程使用 myApp
。專案位置 輸入想要的位置以儲存您的專案。 專案 SDK 第一次使用 IDEA 時可能是空白的。 選取 [ 新增... ],然後瀏覽至您的 JDK。 Spark 版本 建立精靈會整合 Spark SDK 和 Scala SDK 的適當版本。 您可以在這裏選擇所需的 Spark 版本。 選取 [完成]。 可能需要幾分鐘的時間,專案才會可供使用。
Spark 專案會自動為您建立成品。 若要檢視成品,請執行下列作業:
a. 從功能表欄,流覽至 [檔案>項目結構...]。
b. 從 [ 項目結構] 視窗中,選取 [ 成品]。
c. 檢視成品之後,選取 [ 取消 ]。
從 myApp>src>主要>Scala>範例>LogQuery 尋找 LogQuery。 本教學課程會使用 LogQuery 來執行。
連線 至 Spark 集區
登入 Azure 訂用帳戶以連線到您的 Spark 集區。
登入您的 Azure 訂用帳戶
從功能表欄,流覽至 [檢視>工具][Windows>Azure 總管]。
在 [Azure 總管] 中 ,以滑鼠右鍵按兩下 Azure 節點,然後選取 [ 登入]。
在 [Azure 登入] 對話框中,選擇 [裝置登入],然後選取 [登入]。
在 [ Azure 裝置登入] 對話框中,選取 [ 複製與開啟]。
在瀏覽器介面中,貼上程式代碼,然後選取 [ 下一步]。
輸入您的 Azure 認證,然後關閉瀏覽器。
登入之後,[ 選取訂用帳戶 ] 對話框會列出與認證相關聯的所有 Azure 訂用帳戶。 選取您的訂用帳戶,然後選取 [ 選取]。
從 Azure Explorer,展開 Synapse 上的 Apache Spark,以檢視您訂用帳戶中的工作區。
若要檢視 Spark 集區,您可以進一步展開工作區。
遠端在 Spark 集區上執行 Spark Scala 應用程式
建立 Scala 應用程式之後,您可以從遠端執行它。
選取圖示以開啟 [ 執行/偵錯組態 ] 視窗。
在 [ 執行/偵錯組態 ] 對話框中,選取 +,然後選取 Synapse 上的 Apache Spark。
在 [ 執行/偵錯組態 ] 視窗中,提供下列值,然後選取 [ 確定]:
屬性 值 Spark 集區 選取您要在其中執行應用程式的 Spark 集區。 選取要提交的成品 保留預設設定。 Main class name (主要類別名稱) 預設值是所選取檔案中的主要類別。 您可以選取省略號 ( ... ) 並選擇另一個類別來變更類別。 作業組態 您可以變更預設索引鍵和值。 如需詳細資訊,請參閱 Apache Livy REST API。 命令列引數 如有需要,您可以輸入以空格分隔的主類別自變數。 參考的 Jar 和參考的檔案 如果有的話,您可以輸入所參考 Jar 和檔案的路徑。 您也可以流覽 Azure 虛擬檔案系統中的檔案,其目前僅支援 ADLS Gen2 叢集。 如需詳細資訊: Apache Spark 組態 和 如何將資源上傳至叢集。 作業上傳 儲存體 展開以顯示其他選項。 儲存區類型 選取 [使用 Azure Blob 上傳 ] 或 [使用叢集預設記憶體帳戶從下拉式清單上傳 ]。 儲存體帳戶 輸入您的記憶體帳戶。 儲存體金鑰 輸入您的記憶體金鑰。 儲存體 容器 一旦 儲存體 帳戶並輸入 儲存體 金鑰,請從下拉式清單中選取您的記憶體容器。 選取 SparkJobRun 圖示,將您的專案提交至選取的 Spark 集區。 [Remote Spark Job in Cluster] \(叢集中的遠端 Spark 作業\) 索引標籤在底部顯示作業執行進度。 您可以選取紅色按鈕來停止應用程式。
本機執行/偵錯 Apache Spark 應用程式
您可以依照下列指示來設定 Apache Spark 作業的本機執行和本機偵錯。
案例 1:執行本機執行
開啟 [ 執行/偵錯組態 ] 對話框,選取加號 (+)。 然後選取 Synapse 上的 Apache Spark 選項。 輸入要儲存的名稱、主要類別名稱的資訊。
- 環境變數和 WinUtils.exe 位置僅適用於 Windows 使用者。
- 環境變數:如果您之前已設定系統環境變數,且不需要手動新增,則可以自動偵測系統環境變數。
- WinUtils.exe 位置:您可以選取右側的資料夾圖示來指定 WinUtils 位置。
然後選取 [本機播放] 按鈕。
本機執行完成後,如果文本包含輸出,您可以檢查數據>預設的輸出檔案。
案例 2:進行本機偵錯
開啟 LogQuery 腳本,設定斷點。
選取 [ 本機偵錯 ] 圖示以執行本機偵錯。
存取和管理 Synapse 工作區
您可以在 Azure Toolkit for IntelliJ 內的 Azure Explorer 中執行不同的作業。 從功能表欄,流覽至 [檢視>工具][Windows>Azure 總管]。
啟動工作區
從 Azure Explorer 瀏覽至 Synapse 上的 Apache Spark,然後展開它。
以滑鼠右鍵按兩下工作區,然後選取 [ 啟動工作區],將會開啟網站。
Spark 控制台
您可以執行 Spark 本機主控台 (Scala) 或執行 Spark Livy 互動式工作階段主控台 (Scala)。
Spark 本機主控台 (Scala)
請確定您已符合 WINUTILS.EXE 必要條件。
從功能表列,瀏覽至 [Run] \(執行\)>[Edit Configurations] \(編輯設定\)。
從 [執行/偵錯組態] 視窗的左窗格中,流覽至 Synapse[Synapse> 上的 Spark] myApp 上的 Apache Spark。
在主視窗中,選取 [Locally Run] \(在本機執行\) 索引標籤。
提供下列值,然後選取 [OK] \(確定\):
屬性 值 環境變數 請確定 HADOOP_HOME 的值是正確的。 WINUTILS.exe 位置 請確定路徑是正確的。 在 [Project] \(專案\) 中,瀏覽至 [myApp] >[src] >[main] >[scala] >[myApp] 。
從功能表欄,流覽至 [工具>Spark 控制台>][執行Spark 本機控制台][Scala]。
然後可能會出現兩個對話方塊,詢問您是否要自動修正相依性。 如果需要,請選取 [Auto Fix] \(自動修正\)。
主控台看起來應該類似下面的圖片。 在主控台視窗中,輸入
sc.appName
,然後按 Ctrl+Enter。 系統將會顯示結果。 您可以選取紅色按鈕來停止本機控制台。
Spark Livy 互動式會話控制台 (Scala)
僅支援 IntelliJ 2018.2 和 2018.3。
從功能表列,瀏覽至 [Run] \(執行\)>[Edit Configurations] \(編輯設定\)。
從 [執行/偵錯組態] 視窗的左窗格中,流覽至 synapse[synapse> 上的 Spark] myApp 上的 Apache Spark。
在主視窗中,選取 [Remotely Run in Cluster] \(在叢集中遠端執行\) 索引標籤。
提供下列值,然後選取 [OK] \(確定\):
屬性 值 Main class name (主要類別名稱) 選取 Main 類別名稱。 Spark 集區 選取您要在其中執行應用程式的 Spark 集區。 在 [Project] \(專案\) 中,瀏覽至 [myApp] >[src] >[main] >[scala] >[myApp] 。
從功能表欄,流覽至 [工具>Spark 控制台>執行Spark Livy 互動式會話控制台][Scala]。
主控台看起來應該類似下面的圖片。 在主控台視窗中,輸入
sc.appName
,然後按 Ctrl+Enter。 系統將會顯示結果。 您可以選取紅色按鈕來停止本機控制台。
將選取專案傳送至 Spark 控制台
您可能會想要透過將某些程式代碼傳送至本機控制台或 Livy 互動式工作階段主控台(Scala)來查看腳本結果。 若要這樣做,您可以在 Scala 檔案中反白顯示某些程式代碼,然後按下滑鼠右鍵 [傳送選取專案至 Spark] 控制台。 選取的程式代碼將會傳送至主控台並完成。 結果會在主控台中顯示於程式碼之後。 主控台會檢查現有的錯誤。
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應