如何识别正在运行的JVM是Apache Spark中的驱动程序还是执行程序

时间:2018-09-08 17:06:31

标签: apache-spark

我正在尝试将Spark日志记录扩展到Elasticsearch。而且我正在寻找一种方法来标识此消息是由驱动程序记录还是由执行程序记录,同时生成日志语句。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我将使用以下代码为您提供示例,以区分驱动程序和执行程序,

object test{
    def main(args:Array[String]){
        log.info("This is driver")
        val sparkSession = ???

        spark.read
        ...
        .map(x=>{
            ...
            log.info("This is executor")
            ...
            })

        log.info("This is driver")
    }
}

您会发现map / foreach与其他转换/动作之间的所有操作均在执行程序上执行,其他所有操作均在驱动程序上执行。

希望这可以澄清。