火花没有拿起hadoop conf

时间:2016-12-22 23:41:04

标签: hadoop apache-spark yarn

我在spark-env.sh脚本中定义了HADOOP_HOME,HADOOP_CONF_DIR,YARN_CONF_DIR。然而,当我尝试用

加载纱线时

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打开,所以显然超时了。

我的yarn-site.xml明确说明了RM地址

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

2 个答案:

答案 0 :(得分:0)

您的驱动程序无法访问spark-env.sh中定义的变量。 (假设你没有运行spark-shell)

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

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

source spark-env.sh 

答案 1 :(得分:0)

我通过在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项目获取纱线配置。