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