YARN AM 日志报告的时间戳与终端和 sparkscala shell 中显示的时间戳不同

YARN AM 日志报告的时间戳与终端和 sparkscala shell 中显示的时间戳不同

我试图了解为什么会发生以下情况:

  1. 我有一个 Docker 容器,其中 Yarn 和 Spark 运行良好,只是该容器的时间戳比我想要的少了 X 小时。因此,当我运行时,date它返回的时间戳比当前时间戳少了 X 小时。
  2. 通过在命令中传递 TZ 环境变量来修复上述问题docker run,因此当我输入时date我会得到正确的时间戳。
  3. 但是,当我spark-submit在 YARN 中运行(集群模式为 yarn)应用程序时,AM 日志中的时间戳仍然是错误的(减去 X 小时)。
  4. spark-submit通过在:-conf 'spark.executor.extraJavaOptions=-Duser.timezone' 和中传递 JVM 的时区设置来解决上述问题-conf 'spark.driver.extraJavaOptions=-Duser.timezone'
  5. 这告诉我 YARN 使用的 JVM 存在问题。但是,当尝试从 SparkScala shell 获取日期时间时,它返回了正确的时间(使用system.currenttimemillis()),而无需在步骤 4 中指定任何 JVM 设置。

问题

  1. 我如何知道 YARN Application Master 容器启动时使用的是哪个 JVM,以及 SparkScala shell 使用的是哪个 JVM?
  2. 为什么在 shell/bash 和 spark-submit 中运行时会有不同的时间戳?

相关内容