Назад | Перейти на главную страницу

Журналы YARN AM сообщают о времени, отличном от того, что показано в терминале и оболочке Sparkscala.

Я пытаюсь понять, почему произошло следующее:

  1. У меня есть контейнер Docker, в котором Yarn и Spark работают нормально, за исключением того, что метка времени этого контейнера была минус X часов того, что я хотел. Итак, когда я бежал date он возвращал отметку времени минус X часов текущей отметки времени.
  2. Удалось исправить это, передав переменную среды TZ в docker run команда, поэтому, когда я набираю date Я получаю правильную метку времени.
  3. Однако когда я бегу spark-submit (режим кластера - пряжа) приложений в YARN, отметка времени в журналах AM по-прежнему неправильная (минус X часов).
  4. Удалось исправить это, передав параметр часового пояса для JVM в spark-submit: -conf 'spark.executor.extraJavaOptions=-Duser.timezone' и -conf 'spark.driver.extraJavaOptions=-Duser.timezone' .
  5. Это говорит мне, что возникла проблема с использованием JVM YARN. Однако при попытке получить datetime из оболочки SparkScala он возвращал правильное время (используя system.currenttimemillis()) без указания каких-либо настроек JVM из шага 4.

Вопросы

  1. Как узнать, какая JVM используется при запуске контейнера из YARN Application Master, а какая JVM - в оболочке SparkScala?
  2. Почему при работе в shell / bash и spark-submit используются разные временные метки?