Назад |
Перейти на главную страницу
Журналы YARN AM сообщают о времени, отличном от того, что показано в терминале и оболочке Sparkscala.
Я пытаюсь понять, почему произошло следующее:
- У меня есть контейнер Docker, в котором Yarn и Spark работают нормально, за исключением того, что метка времени этого контейнера была минус X часов того, что я хотел. Итак, когда я бежал
date
он возвращал отметку времени минус X часов текущей отметки времени. - Удалось исправить это, передав переменную среды 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 используются разные временные метки?