【问题标题】:Bluemix Spark: spark-submit failing when downloading stderr and stdout?Bluemix Spark:下载 stderr 和 stdout 时 spark-submit 失败?
【发布时间】:2016-04-20 23:01:18
【问题描述】:

我在 IBM Bluemix 中使用 Spark 服务。我正在尝试使用 spark-submit.sh 脚本启动一段 Java 代码来执行一些 Spark 进程。

我的命令行是:

./spark-submit.sh --vcap ./VCAP.json --deploy-mode cluster --class org.apache.spark.examples.JavaSparkPi \
--master https://169.54.219.20 ~/Documents/Spark/JavaSparkPi.jar 

我正在使用最新的 spark-submit.sh 版本(截至昨天)。

./spark-submit.sh --version
spark-submit.sh  VERSION : '1.0.0.0.20160330.1'

这在几周前运行良好(使用旧的 spark-submit.sh),但现在我收到以下错误:

Downloading stdout_1461024849908170118
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0    89    0    89    0     0     56      0 --:--:--  0:00:01 --:--:--   108
Failed to download from workdir/driver-20160418191414-0020-5e7fb175-6856-4980-97bc-8e8aa0d1f137/stdout to     stdout_1461024849908170118

Downloading stderr_1461024849908170118
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0    89    0    89    0     0     50      0 --:--:--  0:00:01 --:--:--   108
Failed to download from workdir/driver-20160418191414-0020-5e7fb175-6856-4980-97bc-8e8aa0d1f137/stderr to     stderr_1461024849908170118

关于我做错了什么有什么想法吗?提前致谢。

编辑:

通过查看日志文件,我发现问题实际上不是在下载 stdout 和 stderr 时,而是在提交作业时。

{
  "action" : "SubmissionStatusResponse",
  "driverState" : "FAILED",
  "message" : "Exception from the cluster:
org.apache.spark.SparkException: Failed to change container CWD
org.apache.spark.deploy.master.EgoApplicationManager.egoDriverExitCallback(EgoApplicationManager.scala:168)
org.apache.spark.deploy.master.MasterScheduleDelegatorDriver.onContainerExit(MasterScheduleDelegatorDriver.scala:144)
org.apache.spark.deploy.master.resourcemanager.ResourceManagerEGOSlot.handleActivityFinish(ResourceManagerEGOSlot.scala:555)
org.apache.spark.deploy.master.resourcemanager.ResourceManagerEGOSlot.callbackContainerStateChg(ResourceManagerEGOSlot.scala:525)
org.apache.spark.deploy.master.resourcemanager.ResourceCallbackManager$$anonfun$callbackContainerStateChg$1.apply(ResourceManager.scala:158)
org.apache.spark.deploy.master.resourcemanager.ResourceCallbackManager$$anonfun$callbackContainerStateChg$1.apply(ResourceManager.scala:157)
scala.Option.foreach(Option.scala:236)
org.apache.spark.deploy.master.resourcemanager.ResourceCallbackManager$.callbackContainerStateChg(ResourceManager.scala:157)",
  "serverSparkVersion" : "1.6.0",
  "submissionId" : "driver-20160420043532-0027-6e579720-2c9d-428f-b2c7-6613f4845146",
  "success" : true
}
driverStatus is FAILED

编辑2:

最后,我在提交作业时遇到的问题仅通过创建一个全新的 Spark 服务实例就解决了。我的工作现在执行并在几秒钟后完成。

但我在尝试下载 stdout 和 stderr 文件时仍然收到错误消息。

Downloading stdout_1461156506108609180
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
  0    90    0    90    0     0     61      0 --:--:--  0:00:01 --:--:--   125
Failed to download from workdir2/driver-20160420074922-0008-1400fc20-95c1-442d-9c37-32de3a7d1f0a/stdout to stdout_1461156506108609180

Downloading stderr_1461156506108609180
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
  0    90    0    90    0     0     56      0 --:--:--  0:00:01 --:--:--   109
Failed to download from workdir2/driver-20160420074922-0008-1400fc20-95c1-442d-9c37-32de3a7d1f0a/stderr to stderr_1461156506108609180

有什么想法吗?

【问题讨论】:

    标签: apache-spark ibm-cloud


    【解决方案1】:

    我发现旧的 spark-submit 试图从 workdir 文件夹中检索 stdout 和 stderr ...

    Failed to download from workdir/driver-20160418191414-0020-5e7fb175-6856-4980-97bc-8e8aa0d1f137/stdout to     stdout_1461024849908170118
    

    虽然新的(昨天下载的)spark-submit 试图从 workdir2 文件夹下载它们...

    Failed to download from workdir2/driver-20160420074922-0008-1400fc20-95c1-442d-9c37-32de3a7d1f0a/stdout to stdout_1461156506108609180
    

    使用中的文件夹由变量 SS_SPARK_WORK_DIR 修复,该变量在 spark-submit 中初始化

    if [ -z ${SS_SPARK_WORK_DIR} ];  then SS_SPARK_WORK_DIR="workdir2"; fi # Work directory on spark cluster
    

    我将值更改为 workdir,现在一切正常。我已经从 Bluemix 站点下载了一个新的(今天的)spark-submit,这个问题已经得到解决。现在该变量指向 workdir。

    因此,如果有任何失败,请确保您从 Bluemix 获得了最后一个 spark-submit 脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      相关资源
      最近更新 更多