2015-12-02 117 views
1

Getting app run id for a Spark job類似,但從命令行或腳本中除外。運行火花任務並通過腳本獲取作業ID

我從我們的持續部署系統中自動運行​​,我需要跟蹤應用程序ID,以便在再次運行作業(以及其他各種需要)之前,我可以將其殺死。

具體來說,這是一個在YARN集羣上執行作業的Python腳本,可以從​​讀取標準輸出,我們需要在稍後保存應用程序標識。

到目前爲止,我可以計算出的最佳方案是運行​​,觀察標準輸出並提取應用程序ID,然後從進程中分離。這個方法在我看來並不理想。

最好,​​將(只)打印出應用程序ID,然後叉,到目前爲止除了修改Spark本身,我沒有看到任何這樣做的方式。

有沒有更好,更明顯的做法呢?

回答

0

我已經創建了一個包裝腳本,爲您提取應用程序ID。其託管在:https://github.com/gak/spark-submit-app-id-wrapper

例子:

# pip install spark-submit-app-id-wrapper 

# ssaiw spark-submit --master yarn-cluster --class etc etc > /dev/null 
application_1448925599375_0050 

現在CI腳本可以儘快通過ssaiw運行​​和搶應用程序ID。

請注意,它只能用YARN進行測試。