簡體   English   中英

火花中的舞台/任務結束是否有“鈎子”?

[英]Is there a “hook” for the end of a stage/task in spark?

我有一個Spark UDF需要在執行程序的本地磁盤上安裝一個特定的文件(在我的情況下是MATLAB運行時)(我們使用的是YARN)。 由於我無法直接訪問執行程序計算機,因此我必須找到另一種在集群上部署運行時的方法。 由於文件非常大,我無法為UDF的每次調用安裝/刪除它,所以我考慮了以下策略:

  • 在UDF的開頭,我檢查運行時是否在特定路徑下本地可用,例如tmp -directory
  • 如果尚未安裝運行時,我將從HDFS中獲取它並在tmp安裝。 這僅在第一次在特定執行程序上調用UDF時完成。

上面的screnario工作正常,但我已經安裝了整個集群的運行時,所以我想在之后刪除它們。

似乎沒有辦法為執行程序添加shutdown-hooks( Spark worker shutdown - 如何釋放共享資源 ),是否有另一個“鈎子”,例如任務結束掛鈎?

正如我所提到的,你可以聽一個任務的結束(我現在有時間嘗試一下),至少在全球范圍內對火花上下文有喜歡的東西(我稍后會在scala中寫一些東西,如同我目前無法運行scala代碼):

//sc is the SparkContext
sc.addSparkListener(new SparkListener() {

        @Override
        public void onTaskEnd(SparkListenerTaskEnd taskEnd) {
            // TODO Auto-generated method stub
            System.out.println("Task ended: " + taskEnd);
            super.onTaskEnd(taskEnd);
        }
    });

還有很多其他的監聽器,請參閱SparkListener

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM