Spark not picking up hadoop conf



我有hadoop_home,hadoop_conf_dir,yarn_conf_dir都在spark-env.sh脚本中定义。但是,当我尝试用

在纱线上加载火花

val sess = new SparkConf().setMaster("yarn-client").setAppName("default")

它是

23:36:44.219 [run-main-0] DEBUG o.a.h.i.retry.RetryInvocationHandler - Exception while invoking getClusterMetrics of class ApplicationClientProtocolPBClientImpl over null. Retrying after sleeping for 30000ms.
java.net.ConnectException: Call From ip-10-122-2-155/10.122.2.155 to 0.0.0.0:8032 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

端口8032打开时,本地没有任何运行,因此显然会淘汰。

我的纱线site.xml明确指出RM地址

    <property>
      <name>yarn.resourcemanager.address</name>
      <value>10.122.2.195:8032</value>
    </property>

您的驱动程序程序无法访问spark-env.sh中定义的变量。(假设您不运行火花壳)

可能的原因可能是,运行驱动程序的用户与Spark的用户不同(Spark安装文件)。

在运行驱动程序之前,请尝试手动设置Spark-env.sh的变量,如下所示

source spark-env.sh 

我通过在build.sbt文件中添加以下行来解决此问题。

unmanagedClasspath in Compile += file("/home/ubuntu/hadoop-2.6.0/etc/hadoop")
unmanagedClasspath in Runtime += file("/home/ubuntu/hadoop-2.6.0/etc/hadoop")

使用其他环境变量来解决此问题,允许SBT项目拾取纱线配置。

最新更新