saveAsNewHadoopFile上的FileNotFoundException

时间:2016-02-15 07:12:58

标签: hadoop apache-spark yarn

我正在使用Spark将数据批量加载到HBase中。我的Python脚本完美地完成了这项工作,但我需要能够使用spark submit提交它,以便我可以在集群上运行它。

当我使用以下内容在本地运行脚本时:

#!/bin/bash
sudo /usr/hdp/current/spark-client/bin/spark-submit\
  --master local[*]\
  --deploy-mode client\
  --verbose\
  --num-executors 3\
  --executor-cores 1\
  --executor-memory 512m\
  --driver-memory 512m\
  --conf\
    spark.logConf=true\
  /test/BulkLoader.py

它完美地工作 - 加载数据,写入HFiles,批量加载它们。但是,当我使用YARN运行代码时,如下所示:

#!/bin/bash
sudo /usr/hdp/current/spark-client/bin/spark-submit\
  --master yarn\
  --deploy-mode client\
  --verbose\
  --num-executors 3\
  --executor-cores 1\
  --executor-memory 512m\
  --driver-memory 512m\
  --conf\
    spark.logConf=true\
  --conf\
    spark.speculation=false\
  /test/BulkLoader.py

事情很快就会出错。一旦脚本尝试写入HFile,我就会收到以下错误:

 An error occurred while calling z:org.apache.spark.api.python.PythonRDD.saveAsNewAPIHadoopFile.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 15.0 failed 26 times, most recent failure: 
Lost task 0.25 in stage 15.0 (TID 67, sandbox.hortonworks.com): java.io.FileNotFoundException: File file:/tmp/hfiles-06-46-57/_temporary/0/_temporary/attempt_201602150647_0019_r_000000_25/f1 does not exist
        at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:609)
        at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:822)
...

编写HFile时,会在_temporary目录上引发FileNotFoundException。我环顾四周,发现很多其他人遇到过这样的错误(herehere),但没有任何建议对我有用。我将执行程序的数量设置为1并将推测设置为false,因为这被认为是错误的可能原因,但问题仍然存在。如果有人可以建议我探索其他选择,我将不胜感激。

0 个答案:

没有答案