Журнал искры не возвращается отправлено водителю, сообщения существуют только в рабочих

Я наблюдаю очень странное поведение кластера Spark, которым я только начал пользоваться.

Нормальное поведение для ведения журнала, когда один запускается spark-submit Вы увидите сообщения журнала, например, так:

INFO 2016-11-04 13:14:10,671 org.apache.spark.executor.Executor: Finished task 227.0 in stage 4.0 (TID 3168). 1992 bytes result sent to driver

Они часто заполняют консоль довольно быстро и быстро, особенно когда приложение использует много разделов.

Но я не вижу никаких обычных сообщений журнала от Spark после запуска spark-submit. Может быть, около 5 строк. Скорее все обычные сообщения журнала находятся в стандартном драйвере в интерфейсе Spark.

Таким образом, вопрос заключается в том, какие настройки и где может указывать Spark не возвращать эти записи журнала обратно драйверу?

Это довольно неприятно, так как очень сложно отлаживать приложения, когда сообщения журнала разбиты на несколько мест. Обычно я просто наблюдаю, как логи высыпаются на экран после запуска spark-submit, и я чувствую, что он делает. Теперь я не могу это почувствовать, потому что я должен посмотреть журналы после события.

1 ответ

Поэтому, покопавшись в банке, которую я использовал, я обнаружил, что она была построена со странным файлом log4j. Я не знаю, что находится в этом файле, но что-то останавливает журналы, поступающие на драйвер. Как только я восстановил jar без этого файла log4j, журналы работают нормально!!

# Set everything to be logged to the console
log4j.rootCategory=DEBUG, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark-project.jetty=WARN
log4j.logger.org.spark-project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark=WARN
log4j.logger.org.apache.hadoop=INFO
log4j.logger.io.netty=INFO
log4j.logger.com.datastax.cassandra=INFO


# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR

Этот вопрос уже устарел, но для тех, кто выполняет задание spark YARN, вы можете просмотреть свои журналы с помощью следующей команды:

yarn logs -applicationId <Your applicationId>

Я нашел эту команду очень полезной для отладки в режиме кластера YARN.

Не полностью отвечает на вопрос OP, но может быть интересно посмотреть, смогут ли они просмотреть журналы таким образом.

Другие вопросы по тегам