全部產品
Search
文件中心

E-MapReduce:通過Zeppelin Livy Interpreter串連EMR Serverless Spark

更新時間:Apr 10, 2025

Zeppelin提供了一個互動式開發環境,使使用者能夠在Web介面中編寫代碼、執行查詢並進行資料視覺效果分析。本文將介紹如何通過Zeppelin的Livy Interpreter串連Serverless Spark,從而高效構建和最佳化互動式開發環境。

前提條件

操作流程

步驟一:建立Gateway及訪問Token

  1. 建立並啟動Gateway。

    1. 進入Gateway頁面。

      1. 登入E-MapReduce控制台

      2. 在左側導覽列,選擇EMR Serverless > Spark

      3. Spark頁面,單擊目標工作空間名稱。

      4. EMR Serverless Spark頁面,單擊左側導覽列中的營運中心 > Gateway

    2. 單擊Livy Gateway頁簽。

    3. Livy Gateway頁面,單擊建立Livy Gateway

    4. 在建立Gateway頁面,輸入名稱(例如,Livy-gateway),單擊建立

      其餘參數請根據具體情況進行調整,更多參數資訊請參見管理Gateway

    5. Livy Gateway頁面,單擊已建立Gateway操作列的啟動

  2. 建立Token。

    1. Gateway頁面,單擊Livy-gateway操作列的Token管理

    2. 單擊建立Token

    3. 建立Token對話方塊中,輸入名稱(例如,Livy-token),單擊確定

    4. 複製Token資訊。

      重要

      Token建立完成後,請務必立即複製新Token的資訊,後續不支援查看。如果您的Token到期或遺失,請選擇建立Token或重設Token。

步驟二:配置Zeppelin Livy Interpreter

  1. 登入Apache Zeppelin,單擊右上方的使用者名稱,從下拉式功能表中選擇Interpreter

    image

  2. 在頁面右上方單擊+Create,配置如下參數資訊,建立一個新的Interpreter。

    參數

    說明

    Interpreter Name

    填寫您自訂的名稱。例如,mylivy。

    Interpreter Group

    設定為livy

  3. 在將Interpreter Group設定為livy後,您需要配置如下參數資訊。

    image

    涉及參數如下表所示。您也可以根據業務需求設定頁面中的其他參數,更多關於參數的解釋說明,請參見Apache Zeppelin官方文檔

    參數

    說明

    zeppelin.livy.url

    Livy的URL,填寫格式為http://{endpoint},其中{endpoint}為您建立的Livy Gateway的Endpoint(內網)資訊。

    image

    zeppelin.livy.session.create_timeout

    Zeppelin等待的最大時間(以秒為單位),建議設定為600秒。

    zeppelin.livy.http.headers

    HTTP請求的自訂頭資訊。需要單擊image表徵圖新增該配置,填寫為x-acs-spark-livy-token:{token}。其中{token}為您在Token管理頁簽建立的Token資訊。

  4. 單擊頁面下方的Save儲存配置。

步驟三:建立Notebook進行操作分析

  1. 在頁面上方單擊Notebook,選擇Create new note

  2. 自訂Note Name,並將Default Interpreter選擇為上文建立的Interpreter,本文樣本為mylivy。

    image

  3. 單擊Create

  4. 在建立的Notebook中輸入以下代碼,啟動一個Spark Session。

    初次開機所需時間為1~3分鐘,其中%pyspark表示Python環境,%spark表示Scala環境。

    %pyspark

    Spark Session啟動後,可以看到Spark UI的連結,並且可以正常執行代碼,支援Python與Scala的混合編寫。

    image

  5. 在建立的Notebook中輸入以下代碼,查詢當前Spark環境中可用的資料庫列表。

    %pyspark
    
    spark.sql("show databases").show()

    返回資訊如下圖所示。

    image

  6. (可選)查看Session資訊。

    當您通過Livy建立Spark Session後,該Session的相關資訊(例如Session ID、狀態等)將顯示在列表中。

    1. Livy Gateway頁面,單擊目標Gateway的名稱。

    2. 單擊Session 列表頁簽。

      在該頁面,您可以查看通過該Livy建立的Spark Session相關資訊。

      image