Question

Je suis nouveau sur Spark.Maintenant, je peux exécuter Spark 0.9.1 sur du fil (2.0.0-cdh4.2.1).Mais il n'y a pas de journal après l'exécution.

La commande suivante est utilisée pour exécuter un exemple Spark.Mais les journaux ne sont pas trouvés dans le serveur d'historique comme dans un travail MapReduce normal.

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

où puis-je trouver les logs/stderr/stdout ?

Y a-t-il un endroit pour définir la configuration ?J'ai trouvé une sortie de la console disant :

14/04/14 18:51:52 INFO Client :Commande pour 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

Dans cette ligne, remarquez 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr

Où peut-on définir LOG_DIR ?

Était-ce utile?

La solution

Joli article pour cette question :

Exécuter Spark sur YARN - voir la section "Débogage de votre application".Explication décente avec tous les exemples requis.

La seule chose que vous devez suivre pour que le serveur d'historique fonctionne correctement pour Spark est de fermer votre contexte Spark dans votre application.Sinon, le serveur d'historique des applications ne vous voit pas comme COMPLET et n'affiche rien (bien que l'interface utilisateur de l'historique soit accessible mais pas si visible).

Autres conseils

Vous pouvez accéder aux journaux via la commande

yarn logs -applicationId <application ID> [OPTIONS]

les options générales sont :

  • appOwner <Application Owner> - AppOwner (supposé être l'utilisateur actuel s'il n'est pas spécifié)
  • containerId <Container ID> - ContainerId (doit être spécifié si noeud l’adresse est spécifiée)
  • nodeAddress <Node Address> - NodeAddress au format nodename:port (doit être spécifié si l'ID du conteneur est spécifié)

Exemples:

yarn logs -applicationId application_1414530900704_0003                                      
yarn logs -applicationId application_1414530900704_0003 myuserid

// the user ids are different
yarn logs -applicationId <appid> --appOwner <userid>

Aucune des réponses n'indique clairement où chercher les journaux (bien qu'ils le soient en morceaux), donc je suis en train de les rassembler.

Si l'agrégation de journaux est activée (avec le fichier Yarn.log-aggregation-enable Yarn-site.xml), procédez comme suit

yarn logs -applicationId <app ID>

Cependant, si cette option n'est pas activée, il faut alors aller sur la machine Data-Node et regarder

$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX/

application_1474886780074_XXXX est l'identifiant de l'application

Il se connecte à :

/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout

Les journaux se trouvent sur chaque nœud sur lequel votre tâche Spark s'exécute.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top