做者:餘根茂,阿里巴巴計算平臺事業部EMR團隊的技術專家,參與了Hadoop,Spark,Kafka等開源項目的研發工做。目前主要專一於EMR流式計算產品的研發工做。
1. 前言
從EMR-3.18.1版本開始,EMR將提供Spark Streaming SQL預覽版功能。本次做爲新特性的一部分,EMR將擴展示有Spark WebUI,支持Structured Streaming Query的統計信息查看。sql
2. 功能介紹
2.1 Query列表
咱們在現有Spark WebUI上新增了streamingsql Tab,用於展現當前做業中進行中以及完成的Streaming Query。微信
URL地址:http://${baseUrl}/streamingsqlapp
Active Streaming Queries:當前正在運行的queryoop
Completed Streaming Queries:已完成的query,包括結束的和失敗的queryui
說明spa |
|
Query Name.net |
查詢Name,經過「SET streaming.query.name=${QUERY_NAME}」指定。3d |
Statusorm |
當前運行狀態,包括RUNNING,FAILED和FINISHED。blog |
Id |
Query ID,保存到checkpoint中,屢次運行同一個query, id保持不變。 |
Run ID |
Query Run ID,每次從新運行query,都會從新生成一個Run ID。 |
Submit Time |
當前Query提交執行的時間。 |
Duration |
當前Query運行時間。 |
Avg Input PerSec |
最近"spark.sql.streaming.numRecentProgressUpdates"個批次的平均數據輸入速率。默認最近100個批次統計信息。 |
Avg Process PerSec |
最近"spark.sql.streaming.numRecentProgressUpdates"個批次的平均數據處理速率。默認最近100個批次統計信息。 |
Total Input Rows |
最近"spark.sql.streaming.numRecentProgressUpdates"個批次的數據條數總和,注意不是Query運行期間的數據條數總和。默認最近100個批次統計信息。 |
Last Batch ID |
最近一次完成的Batch ID。 |
Last Progress |
最近一次批次的執行信息。 |
ERROR |
若是Query失敗,展現摘要錯誤信息。 |
支持在界面上kill某個query。
kill以後狀態變爲「FINISHED」:
2.2 Query統計詳情
經過點擊Query的RunID,能夠查看當前Query的運行統計信息,包括:Input Rate,Process Rate,Input Rows的時序變化,以及每一個批次的Duration堆棧圖,包括WalCommit,QueryPlanning,GetOffset,GetBatch以及AddBatch。
URL地址:http://${baseUrl}/streamingsql/statistics?id=9d7e9076-f96a-4d19-9f82-460b5af57daa
咱們能夠查看任意時間的Batch的各個執行階段的時間消耗。
一樣的,這裏將只會展現「spark.sql.streaming.numRecentProgressUpdates」個Batch的統計信息。若是須要查看更長週期內的統計信息,能夠設置「spark.sql.streaming.numRecentProgressUpdates」爲更大值。須要注意的是,這會帶來必定的內存開銷。
3. 小結
以上簡單演示了Structured Streaming Query的管理和統計信息查看功能。當前Spark Streaming SQL處於預覽階段,咱們將在UI上集成更多有用的信息,方便你們查看和監控做業的運行狀態。
本文分享自微信公衆號 - Apache Spark技術交流社區(E-MapReduce_Spark)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。