Spark on MaxCompute作業提交後,您可以通過MaxCompute提供的Logview或Spark Web-UI工具擷取作業日誌,以檢查作業是否已正常提交並執行。
背景資訊
Spark on MaxCompute通過Spark-submit方式(DataWorks執行Spark任務時也會產生相應日誌)成功提交作業後,MaxCompute會建立一個Instance,並在日誌中列印Instance的Logview和Tracking URL,您可根據Logview或Tracking URL追蹤作業的運行情況。
Logview:即以
logview.odps.aliyun.com
開頭的URL,是MaxCompute自研的分布式作業追蹤工具。Tracking URL:即方便使用者查看Spark Web-UI的URL。
以下為輸出Logview和Tracking URL的作業樣本:
提交作業。
cd $SPARK_HOME bin/spark-submit --master yarn-cluster --class SparkPi /tmp/spark-2.x-demo/target/AliSpark-2.x-quickstart-1.0-SNAPSHOT-shaded.jar
查看Instance日誌。
19/01/05 20:36:47 INFO YarnClientImplUtil: logview url: http://logview.odps.aliyun.com/logview/?h=http://service.cn.maxcompute.aliyun.com/api&p=qn_beijing&i=xxx&token=xxx 成功標準: <看到以下輸出,可能會有其他日誌一併輸出> 19/01/05 20:37:34 INFO Client: client token: N/A diagnostics: N/A ApplicationMaster host: 11.220.xxx.xxx ApplicationMaster RPC port: 30002 queue: queue start time: 1546691807945 final status: SUCCEEDED tracking URL: http://jobview.odps.aliyun.com/proxyview/jobview/?h=http://service.cn.maxcompute.aliyun-inc.com/api&p=project_name&i=xxx&t=spark&id=application_xxx&metaname=xxx&token=xxx
使用Logview工具診斷作業
以logview.odps.aliyun.com
開頭的URL,統稱為Logview。Logview是MaxCompute自研的分布式作業追蹤工具。該工具的功能如下:
擷取作業的狀態。
擷取作業各節點的啟停調度資訊。
擷取作業各節點的標準輸入輸出日誌。Spark結果輸出建議列印到StdOut,Spark的log4j日誌則預設輸出到StdErr。
Logview的時效性為3~5天。當本地磁碟已滿時,StdOut和StdErr會被清理掉。
在瀏覽器中開啟日誌輸出的Logview,查看CUPID類型作業的運行情況。
在Logview頁面,執行如下操作。
單擊Detail,查看作業的詳情。master-0代表Spark Driver所在節點。
單擊master-0並選擇All Tab,查看Spark Driver節點的具體資訊。
單擊StdOut,查看節點的結果輸出。
單擊StdErr,查看節點的log4j日誌。
使用Spark-Web-UI診斷作業
日誌輸出的Tracking URL,表示您的作業已經提交到MaxCompute叢集。Tracking URL是Spark Web-UI和HistoryServer的URL。該工具的功能如下:
擷取原生Spark-Web-UI的所有資訊。
作業運行時,此頁面顯示作業啟動並執行即時資訊。
作業運行結束後,把事件從驅動傳遞到HistoryServer有1~3分鐘的延遲。作業運行結束後,立刻開啟Tracking URL時,可能會出現一個頁面,顯示
Application application_1560240626712_2078769635 not found.
錯誤。請稍後重試即可正常訪問。
在瀏覽器中開啟日誌輸出的Tracking URL,查看Spark作業的運行情況。
在Tracking URL頁面,執行如下操作。
單擊Environment,確認設定的Spark參數是否全部正確。
單擊Executors,查看是否有Dead節點,以及Spark Driver的StdOut和StdErr。
單擊Stdout,查看節點的結果輸出。
單擊Stderr,查看節點的log4j日誌。