Где находятся журналы в Spark на YARN?
-
26-12-2019 - |
Вопрос
Я новичок в искре.Теперь я могу запустить искру 0.9.1 на пряже (2.0.0-cdh4.2.1).Но журнала после выполнения нет.
Следующая команда используется для запуска примера искры.Но журналы не обнаруживаются на сервере истории, как в обычном задании MapReduce.
SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \
./bin/spark-class org.apache.spark.deploy.yarn.Client --jar ./spark-example-1.0.0.jar \
--class SimpleApp --args yarn-standalone --num-workers 3 --master-memory 1g \
--worker-memory 1g --worker-cores 1
где я могу найти журналы/stderr/stdout?
Есть ли где установить конфигурацию?Я нашел вывод из консоли, в котором говорилось:
04.14.14 18:51:52 ИНФО Клиент:Команда для ApplicationMaster:$JAVA_HOME/bin/java -server -Xmx640m -Djava.io.tmpdir=$PWD/tmp org.apache.spark.deploy.yarn.ApplicationMaster --class SimpleApp --jar ./spark-example-1.0.0.jar --args 'yarn-standalone' --worker-memory 1024 --worker-cores 1 --num-workers 3 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr
В этой строке обратите внимание 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr
Где можно установить LOG_DIR?
Решение
Красивая статья на этот вопрос:
Запуск искры на пряже - См. Раздел «Отладка вашего приложения».Приличное объяснение со всеми необходимыми примерами.
Другие советы
Доступ к журналам можно получить с помощью команды
yarn logs -applicationId <application ID> [OPTIONS]
общие варианты:
appOwner <Application Owner>
- AppOwner (предполагается текущий пользователь, если не указано)containerId <Container ID>
- Контейнер (должен быть указан, если указан адрес узла)nodeAddress <Node Address>
- NodeAddress в форматеnodename:port
(необходимо указать, если указан идентификатор контейнера)
Примеры:
yarn logs -applicationId application_1414530900704_0003
yarn logs -applicationId application_1414530900704_0003 myuserid
// the user ids are different
yarn logs -applicationId <appid> --appOwner <userid>
Ни один из ответов не делает его кристально понятно, где искать журналы (хотя они делают на куски), поэтому я вкладываю его вместе.
Если агрегация журнала включена (с yarn.log-average-avalable yarn-site.xml), то сделайте это
yarn logs -applicationId <app ID>
.
Однако, если это не включено, то нужно пойти на машину данных-узла и посмотреть на
$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX/
.
Application_1474886780074_xxxx - это идентификатор приложения
Это журналы:
/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout
.
Журналы находятся на каждом узле, на котором работает ваша искровая работа.