Zeppelin提供了一個互動式開發環境,使使用者能夠在Web介面中編寫代碼、執行查詢並進行資料視覺效果分析。本文將介紹如何通過Zeppelin的Livy Interpreter串連Serverless Spark,從而高效構建和最佳化互動式開發環境。
前提條件
已建立工作空間,詳情請參見建立工作空間。
已安裝並啟動Zeppelin,詳情請參見Apache Zeppelin官方文檔。
操作流程
步驟一:建立Gateway及訪問Token
建立並啟動Gateway。
進入Gateway頁面。
在左側導覽列,選擇。
在Spark頁面,單擊目標工作空間名稱。
在EMR Serverless Spark頁面,單擊左側導覽列中的。
單擊Livy Gateway頁簽。
在Livy Gateway頁面,單擊建立Livy Gateway。
在建立Gateway頁面,輸入名稱(例如,Livy-gateway),單擊建立。
其餘參數請根據具體情況進行調整,更多參數資訊請參見管理Gateway。
在Livy Gateway頁面,單擊已建立Gateway操作列的啟動。
建立Token。
在Gateway頁面,單擊Livy-gateway操作列的Token管理。
單擊建立Token。
在建立Token對話方塊中,輸入名稱(例如,Livy-token),單擊確定。
複製Token資訊。
重要Token建立完成後,請務必立即複製新Token的資訊,後續不支援查看。如果您的Token到期或遺失,請選擇建立Token或重設Token。
步驟二:配置Zeppelin Livy Interpreter
登入Apache Zeppelin,單擊右上方的使用者名稱,從下拉式功能表中選擇Interpreter。

在頁面右上方單擊+Create,配置如下參數資訊,建立一個新的Interpreter。
參數
說明
Interpreter Name
填寫您自訂的名稱。例如,mylivy。
Interpreter Group
設定為livy。
在將Interpreter Group設定為livy後,您需要配置如下參數資訊。

涉及參數如下表所示。您也可以根據業務需求設定頁面中的其他參數,更多關於參數的解釋說明,請參見Apache Zeppelin官方文檔。
參數
說明
zeppelin.livy.url
Livy的URL,填寫格式為
http://{endpoint},其中{endpoint}為您建立的Livy Gateway的Endpoint(內網)資訊。
zeppelin.livy.session.create_timeout
Zeppelin等待的最大時間(以秒為單位),建議設定為600秒。
zeppelin.livy.http.headers
HTTP請求的自訂頭資訊。需要單擊
表徵圖新增該配置,填寫為x-acs-spark-livy-token:{token}。其中{token}為您在Token管理頁簽建立的Token資訊。單擊頁面下方的Save儲存配置。
步驟三:建立Notebook進行操作分析
在頁面上方單擊Notebook,選擇Create new note。
自訂Note Name,並將Default Interpreter選擇為上文建立的Interpreter,本文樣本為mylivy。

單擊Create。
在建立的Notebook中輸入以下代碼,啟動一個Spark Session。
初次開機所需時間為1~3分鐘,其中
%pyspark表示Python環境,%spark表示Scala環境。%pysparkSpark Session啟動後,可以看到Spark UI的連結,並且可以正常執行代碼,支援Python與Scala的混合編寫。

在建立的Notebook中輸入以下代碼,查詢當前Spark環境中可用的資料庫列表。
%pyspark spark.sql("show databases").show()返回資訊如下圖所示。

(可選)查看Session資訊。
當您通過Livy建立Spark Session後,該Session的相關資訊(例如Session ID、狀態等)將顯示在列表中。
在Livy Gateway頁面,單擊目標Gateway的名稱。
單擊Session 列表頁簽。
在該頁面,您可以查看通過該Livy建立的Spark Session相關資訊。
