Где журналы Spark на EMR?

Я не могу найти журналы ошибок или сообщения из println вызовов в Scala во время выполнения заданий на Spark в EMR.

Где я могу получить к ним доступ?

Я отправляю Spark job, написанный в Scala до EMR, используя script-runner.jar с аргументами --deploy-mode, установленными на cluster и --master, установленными в yarn. Он отлично работает.

Однако я не вижу своих операторов println в Amazon EMR UI, где он перечисляет "stderr, stdout etc. 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

`

Ответ 1

В режиме развертывания кластера на пряжу драйвер Spark и, следовательно, исполняемый код пользователя будут находиться в контейнере Application Master. Похоже, что в кластере включена отладка EMR, поэтому журналы также должны были перейти на S3. В месте S3 посмотрите task-attempts/<applicationid>/<firstcontainer>/*.

Ответ 2

Если вы используете SSH в главном node вашего кластера, тогда вы сможете найти записи stdout, stderr, syslog и controller в разделе:

/mnt/var/log/hadoop/steps/<stepname>

Ответ 3

Если вы отправляете свою работу с помощью emr-bootstrap, вы можете указать каталог журнала как ведро s3 с --log-uri

Ответ 4

Журналы событий, необходимые для spark-history-server можно найти по адресу:

hdfs:///var/log/spark/apps