Spark的示例在客户端模式下引发FileNotFoundException

时间:2019-03-14 08:29:53

标签: apache-spark ubuntu hadoop bigdata yarn

我有:Ubuntu 14.04,Hadoop 2.7.7,Spark 2.2.0。

我刚刚安装了所有东西。

当我尝试运行Spark的示例时:

function   shouldComponentUpdate (nextProps, nextState) {
  return  nextProps.flight !==  this .props.flight;
 }

我收到以下错误:

  

INFO yarn.Client:            客户令牌:N / A            诊断:应用程序application_1552490646290_0007由于AM容器而失败了2次   appattempt_1552490646290_0007_000002退出,退出代码:-1000对于   更详细的输出,检查应用程序跟踪   页面:http://ip-123-45-67-89:8088/cluster/app/application_1552490646290_0007然后,   单击指向每次尝试日志的链接。诊断:文件   文件:/ tmp / spark-f5879f52-6777-481a-8ecf-bbb55e376901 / __ spark_libs__6948713644593068670.zip   不存在java.io.FileNotFoundException:文件   文件:/ tmp / spark-f5879f52-6777-481a-8ecf-bbb55e376901 / __ spark_libs__6948713644593068670.zip   不存在

bin/spark-submit --deploy-mode client \
               --class org.apache.spark.examples.SparkPi \
               examples/jars/spark-examples_2.11-2.2.0.jar 10

在客户端模式和群集模式下,我都遇到相同的错误。

2 个答案:

答案 0 :(得分:0)

似乎通过加载spark库失败。正如Daniel指出的那样,这可能与您的阅读权利有关。此外,这可能与磁盘空间不足有关。

但是,在本例中,为了避免将传输延迟转移到本地计算机上的主服务器和读取/写入权限,我们将 spark-libs 放入Yarn群集的HDFS中,然后指向它们放在spark.yarn.archive属性中。

jar cv0f spark-libs.jar -C $SPARK_HOME/jars/ .
export HADOOP_USER_NAME=hadoop
hadoop fs -mkdir -p /apps/spark/
hadoop fs -put -f  ${SPARK_HOME}/spark-libs.jar /apps/spark/
# spark-defaults.conf
spark.yarn.archive hdfs:///apps/spark/spark-libs.jar

答案 1 :(得分:0)

首先,包含您的应用程序和所有依赖项的捆绑jar的路径。该URL必须在群集内部全局可见,例如,所有节点上都存在hdfs://路径或file://路径。

第二,如果您在YARN模式下运行,则已将主服务器指向yarn submitting-applications,并将jar文件放入hdfs

# Run on a YARN cluster
# Connect to a YARN cluster in client or cluster mode depending on the value 
# of --deploy-mode. The cluster location will be found based on the HADOOP_CONF_DIR 
# or YARN_CONF_DIR variable. 

export HADOOP_CONF_DIR=XXX
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \  # can be client for client mode
hdfs://path/to/spark-examples.jar
1000