Je ne parviens pas à localiser les journaux d'erreurs ni les messages provenant d'appels println
dans Scala lors de l'exécution de travaux sur Spark
dans EMR
.
Où puis-je accéder à ceux-ci?
Je soumets le Spark job
, écrit dans Scala
à EMR
en utilisant script-runner.jar
, avec les arguments --deploy-mode
définis sur cluster
et --master
définis sur yarn
. Cela fonctionne bien.
Cependant, je ne vois pas mes instructions println
dans le Amazon EMR UI
où sont indiqués "stderr, stdoutetc. Furthermore if my job errors I don't see why it had an error. All I see is this in the
stderr`:
15/05/27 20:24:44 INFO yarn.Client: Application report from ResourceManager:
application identifier: application_1432754139536_0002
appId: 2
clientToAMToken: null
appDiagnostics:
appMasterHost: ip-10-185-87-217.ec2.internal
appQueue: default
appMasterRpcPort: 0
appStartTime: 1432758272973
yarnAppState: FINISHED
distributedFinalState: FAILED
appTrackingUrl: http://10.150.67.62:9046/proxy/application_1432754139536_0002/A
appUser: hadoop
`
Avec le mode de déploiement du cluster sur le fil, le pilote Spark et donc le code utilisateur exécuté se trouveront dans le conteneur maître d’application. On dirait que le débogage EMR est activé sur le cluster; les journaux doivent donc également être transmis à S3. Dans l'emplacement S3, regardez task-attempts/<applicationid>/<firstcontainer>/*
.
Si vous SSH dans le nœud maître de votre cluster, vous devriez pouvoir trouver les journaux stdout, stderr, syslog et contrôleur sous:
/mnt/var/log/hadoop/steps/<stepname>
Les journaux des événements, ceux requis pour le spark-history-server
peuvent être trouvés sur:
hdfs:///var/log/spark/apps
Si vous soumettez votre travail avec emr-bootstrap , vous pouvez spécifier le répertoire de journalisation en tant que compartiment s3 avec --log-uri