异常:java.lang.Exception:使用主 'yarn' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花

Posted

技术标签:

【中文标题】异常:java.lang.Exception:使用主 \'yarn\' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花【英文标题】:Exception: java.lang.Exception: When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment. in spark异常:java.lang.Exception:使用主 'yarn' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花 【发布时间】:2017-06-08 11:20:26 【问题描述】:

我是新的 apache-spark。我已经在 spark 独立模式下测试了一些应用程序。但我想运行应用程序 yarn 模式。我在 windows 中运行 apache-spark 2.1.0。这是我的代码

c:\spark>spark-submit2 --master yarn --deploy-mode client --executor-cores 4 --jars C:\DependencyJars\spark-streaming-eventhubs_2.11-2.0.3.jar,C:\DependencyJars\scalaj-http_2.11-2.3.0.jar,C:\DependencyJars\config-1.3.1.jar,C:\DependencyJars\commons-lang3-3.3.2.jar --conf spark.driver.userClasspathFirst=true --conf spark.executor.extraClassPath=C:\DependencyJars\commons-lang3-3.3.2.jar --conf spark.executor.userClasspathFirst=true --class "GeoLogConsumerRT" C:\sbtazure\target\scala-2.11\azuregeologproject_2.11-1.0.jar

例外:使用 master 'yarn' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花中

所以从搜索网站。我创建了一个文件夹名称 Hadoop_CONF_DIR 并将 hive site.xml 放入其中并指向环境变量,之后我运行 spark-submit 然后我得到了

连接被拒绝异常 我想我无法正确配置纱线模式。有人可以帮我解决这个问题吗?我需要分别安装 Hadoop 和 yarn 吗?我想以伪分布式模式运行我的应用程序。请帮我在 windows 中配置 yarn 模式,谢谢

【问题讨论】:

【参考方案1】:

您需要导出两个变量HADOOP_CONF_DIRYARN_CONF_DIR 以使您的配置文件对纱线可见。如果您使用的是 linux,请在 .bashrc 文件中使用以下代码。

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

windows下需要设置环境变量。

希望这会有所帮助!

【讨论】:

感谢您的回复。我以前看过 Linux 配置,但目前我正在使用 Windows。我有 winutils 文件夹,它实际上是我的 Hadoop 主页。它是我的 Hadoop 家庭环境变量。您是指我将设置 HADOOP_CONF_DIR , YARN_CONF_DIR 作为环境变量,将指向 winutils 的 bin 文件夹? 这个对我不起作用。我根据here解决了这个问题,上面说修改spark conf文件夹中的spark_env.sh文件 完成这项工作的最小更改是什么?你需要那个目录存在吗?【参考方案2】:

如果您使用 Yarn 运行 spark,那么您最好将其添加到 spark-env.sh:

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

【讨论】:

以上是关于异常:java.lang.Exception:使用主 'yarn' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花的主要内容,如果未能解决你的问题,请参考以下文章

java异常

Java异常

Java语言中两种异常的差别

Java之运行时异常与编译时异常区别

Java异常机制

使用java.lang.Exception的错误:测试类应该只有一个公共构造函数