2015-11-05 64 views
0

我試圖分析一些Spark作業,並且想要從每個執行器收集Java Flight Recorder(JFR)文件。我在具有多個節點的YARN羣集上運行我的工作,所以我無法爲每次運行手動收集JRF文件。我想寫一個腳本,它可以從集羣中的每個節點收集給定作業的JFR文件。JAVA_OPTS中的Spark執行器ID

MR提供了一種用taskId命名每個任務生成的JFR文件的方法。它用Java選項中的TaskId替換'@ task @'。有了這個,我可以獲得由每個任務創建的JFR文件的唯一名稱,並且由於TaskId也具有JobId,因此我可以解析它以區分由不同MR作業生成的文件。

我在想,如果Spark有類似的東西。 Spark是否提供了一種在Java opts中確定executorId的方法?有沒有其他人試圖做類似的事情,並找到一個更好的方式收集Spark工作的所有JFR文件?

回答

0

您不能在opts中設置執行程序ID,但可以從事件日誌以及承載它的從屬節點獲取執行程序ID。

但是我相信你給spark-submit一個紗主和獨立的選項對執行者JVM有相同的效果,所以你應該沒問題!