JAVA_OPTS中的Spark Executor Id

时间:2015-11-05 00:02:31

标签: apache-spark java-opts

我试图描述一些Spark工作,我想从每个执行器收集Java Flight Recorder(JFR)文件。我在具有多个节点的YARN集群上运行我的工作,因此我无法为每次运行手动收集JRF文件。我想编写一个脚本,它可以从集群中的每个节点收集给定作业的JFR文件。

MR提供了一种使用taskId命名每个任务生成的JFR文件的方法。它取代了@task @'使用Java中的TaskId选择。有了这个,我可以得到每个任务创建的JFR文件的唯一名称,因为TaskId也有JobId,我可以解析它来区分不同MR作业生成的文件。

我想知道,如果Spark有类似的东西。 Spark是否提供了一种在Java opts中确定executorId的方法?有没有其他人试图做类似的事情,并找到一个更好的方法收集所有JFR文件的Spark工作?

2 个答案:

答案 0 :(得分:0)

您无法在opts中设置执行程序ID,但您可以从事件日志以及带有它的从属节点获取执行程序ID。

但是我相信你为一个纱线大师和一个独立的大师提供spark-submit的选项对执行者JVM有相同的效果,所以你应该没问题!

答案 1 :(得分:0)

您可以在spark.executor.extraJavaOptions参数中使用{{EXECUTOR_ID}}和{{APP_ID}}占位符。它们将分别替换为具有执行者ID和应用程序ID的Spark。