Журналы YARN AM сообщают другую временную отметку, отличную от показанной в терминале и оболочке sparkscala
Я пытаюсь понять, почему произошло следующее:
- У меня есть Docker-контейнер с Yarn и Spark, работающий нормально, за исключением того, что временная метка этого контейнера была минус X часов того, что я хотел. Итак, когда я бежал
date
он возвращал метку времени минус Х часов текущей метки времени. - Удалось исправить это, передав переменную окружения TZ в
docker run
команда, поэтому, когда я печатаюdate
Я получил правильную метку времени. - Тем не менее, когда я бегу
spark-submit
(режим кластера - пряжа) приложения в YARN, временная метка в журналах AM все еще неправильная (минус X часов). - Удалось исправить вышеуказанное, передав настройку часового пояса для JVM в
spark-submit
:-conf 'spark.executor.extraJavaOptions=-Duser.timezone'
а также-conf 'spark.driver.extraJavaOptions=-Duser.timezone'
, - Это говорит мне, что была проблема с использованием JVM YARN. Однако, когда попытался получить datetime из оболочки SparkScala, он возвращал правильное время (используя
system.currenttimemillis()
) без указания каких-либо настроек JVM из шага 4.
Вопросы
- Как я могу сказать, какая JVM используется при запуске контейнера из YARN Application Master и какая JVM в оболочке SparkScala?
- Почему существуют разные временные метки при работе в shell/bash и spark-submit?