Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 在“纱线簇”模式下运行spark应用程序时,找不到将HADOOP_带回家_Apache Spark_Yarn - Fatal编程技术网

Apache spark 在“纱线簇”模式下运行spark应用程序时,找不到将HADOOP_带回家

Apache spark 在“纱线簇”模式下运行spark应用程序时,找不到将HADOOP_带回家,apache-spark,yarn,Apache Spark,Yarn,我正在尝试以纱线簇模式运行应用程序。下面是shell脚本的设置: spark-submit --class "com.Myclass" \ --num-executors 2 \ --executor-cores 2 \ --master yarn \ --supervise \ --deploy-mode cluster \ ../target/ \ 此外,我得到以下错误。以下是纱线日志应用程序ID中的错误详细信息 INFO : org.apache.spark.deploy.ya

我正在尝试以纱线簇模式运行应用程序。下面是shell脚本的设置:

spark-submit --class "com.Myclass"  \
--num-executors 2 \
 --executor-cores 2 \
 --master yarn \
 --supervise \
 --deploy-mode cluster \
../target/ \
此外,我得到以下错误。以下是纱线日志应用程序ID中的错误详细信息

INFO : org.apache.spark.deploy.yarn.ApplicationMaster - Registered signal handlers for [TERM, HUP, INT]
DEBUG: org.apache.hadoop.util.Shell - Failed to detect a valid hadoop home directory
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.
    at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:307)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:332)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:79)
    at org.apache.hadoop.yarn.conf.YarnConfiguration.<clinit>(YarnConfiguration.java:590)
    at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.newConfiguration(YarnSparkHadoopUtil.scala:62)
    at org.apache.spark.deploy.SparkHadoopUtil.<init>(SparkHadoopUtil.scala:52)
    at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.<init>(YarnSparkHadoopUtil.scala:47)

我在运行spark submit时看到hadoop home被记录,但它仍然抱怨hadoop home的错误。

在我的spark-env.sh中,它看起来有点不同:

# Make Hadoop installation visible
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop/conf}

也许这能帮你。请记住调整路径。

Thread和您的应用程序是否使用相同的用户运行?是的,我尝试使用与Thread相同的用户运行系统,还尝试在spark提交路径中硬编码hadoop配置文件,但仍然遇到相同的问题。我也有相同的问题,无法找到解决方案。与您一样,我将
HADOOP\u HOME
添加到
spark env.sh
中,并在运行
sparkauncher
时验证它是否已被获取,但容器没有看到此值并记录错误。我尝试使用SPAR_SUBMIT_OPTS中的-D选项将hadoop.home.dir设置为系统属性,但这也不会传递给提交的作业,因此容器看不到它。有一种方法可以在命令行上为[finally]java调用指定此属性-dhadoop.home.dir=[path.to.hadoop]
# Make Hadoop installation visible
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client}
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop/conf}