spark 在yarn执行job时一直报0.0.0.0:8030错误

按照常规思路,首先检查配置文件:yarn-site.xml 。查看里面配置的yarn.resourcemanager.scheduler.address 是否为master。

<property>
     <name>yarn.resourcemanager.hostname</name>                      
     <value>master1</value>
</property>
<property>
     <name>yarn.resourcemanager.scheduler.address</name>                      
     <value>master1:8030</value>
</property>

这一项排查过后,重启cluser,若故障依旧。

继续排查。如果环境方面都没有问题,写一下 hard coding.在代码里面直接写死:

1 Configuration conf = new Configuration();  
2 conf.set("fs.default.name",hdfsUri);  
3 conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");  
4 conf.set("mapreduce.framework.name", "yarn");  
5 conf.set("fs.AbstractFileSystem.hdfs.impl", "org.apache.hadoop.fs.Hdfs");  
6 conf.set("yarn.resourcemanager.address", yarnip+":"+8030); //设置RM 访问位置  

重新执行job,若仍然报错。

目前已经排查的有:

1、配置文件:master、slave的yarn-site.xml 都正常无问题。

2、环境变量:master、slave的环境变量都正常无问题。

3. hard coding

或是框架本省的问题

在spark根目录检索0.0.0.0,发现在spark依赖的一个包里面还真有一个匹配的:

spark-core-assembly-0.4-SNAPSHOT.jar

打开这个jar包,里面有一个yarn-default.xml 。这里面配置的是0.0.0.0. 按道理来说配置文件优先级应该是大于jar的。

把0.0.0.0改成master的IP,重新打包上传,执行job。


以及HDFS安全模式操作:

获取安全模式的状态:

hdfs dfsadmin
-safemode get

安全模式打开

hdfs dfsadmin
-safemode enter

安全模式关闭

hdfs dfsadmin
-safemode leave


猜你喜欢

转载自blog.csdn.net/qq_37408712/article/details/80935221