EMR 上的 Spark 日志在哪里?

问题描述 投票:0回答:6

println
中的
Spark
上运行作业时,我无法找到来自 Scala 中
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

`

scala apache-spark emr
6个回答
15
投票

使用纱线上集群的部署模式,Spark 驱动程序以及执行的用户代码将位于 Application Master 容器内。听起来您在集群上启用了 EMR 调试,因此日志也应该推送到 S3。在 S3 位置查看

task-attempts/<applicationid>/<firstcontainer>/*


7
投票

我也花了很多时间来解决这个问题。在以下位置找到日志: EMR UI 控制台 -> 摘要 -> 日志 URI -> 容器 -> application_xxx_xxx -> container_yyy_yy_yy -> stdout.gz。


6
投票

如果您通过 SSH 连接到集群的主节点,那么您应该能够在以下位置找到 stdout、stderr、syslog 和控制器日志:

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

1
投票

事件日志,

spark-history-server
所需的日志可以在:

找到
hdfs:///var/log/spark/apps

0
投票

如果您使用 emr-bootstrap 提交作业,您可以使用

--log-uri

将日志目录指定为 s3 存储桶

0
投票

当您使用yarn时,使用yarn log命令很容易获取日志。

使用示例:

纱线日志-applicationId applicationId -am 1 | grep“您的应用程序日志”

这将从第一个容器(通常是主容器)打印日志。

© www.soinside.com 2019 - 2024. All rights reserved.