Где журналы в Spark на YARN?
Я новичок в искру. Теперь я могу запустить искру 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
Где я могу найти logs/stderr/stdout?
Есть ли место для настройки конфигурации?
Я нашел вывод с консоли:
14/04/14 18:51:52 INFO Клиент: команда для 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 - "пряжа-автономная" - рабочая память 1024 - рабочие ядра 1 - num-workers 3 1 > <LOG_DIR > /stdout 2 > < LOG_DIR > /stderr
В этой строке обратите внимание на 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr
Где можно установить LOG_DIR?
Ответы
Ответ 1
Довольно статья для этого вопроса:
Запуск Spark on YARN - см. раздел "Отладка вашего приложения". Приличное объяснение со всеми необходимыми примерами.
Единственное, что вам нужно для правильной работы сервера истории работы Spark, - это закрыть контекст Spark в приложении. В противном случае сервер истории приложений не увидит вас как COMPLETE и ничего не отобразит (несмотря на то, что пользовательский интерфейс истории доступен, но не так заметен).
Ответ 2
Доступ к журналам можно получить с помощью команды
yarn logs -applicationId <application ID> [OPTIONS]
общие параметры:
-appOwner AppOwner (предполагается, что он является текущим пользователем, если не определен)
-containerId ContainerId (должен быть указан, если node адрес указан)
-nodeAddress 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>
Ответ 3
Он записывается в журнал:
/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout
Журналы находятся на каждом node, на котором выполняется ваше задание Spark.
Ответ 4
Ни один из ответов не делает его кристально чистым, где искать журналы (хотя они и делаются на куски), поэтому я собираю их вместе.
Если включена агрегирование журнала (с помощью jarn.log-aggregation-enable yarn-site.xml), сделайте это
yarn logs -applicationId <app ID>
Однако, если это не включено, вам нужно перейти на машину Data- Node и посмотреть
$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX/
application_1474886780074_XXXX - это идентификатор приложения