spark 在yarn執行job時一直抱0.0.0.0:8030錯誤


近日新寫完的spark任務放到yarn上面執行時,在yarn的slave節點中一直看到報錯日志:連接不到0.0.0.0:8030 。

1 The logs are as below:
2 2014-08-11 20:10:59,795 INFO [main] org.apache.hadoop.yarn.client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8030
3 2014-08-11 20:11:01,838 INFO [main] org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8030. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

 

這就很奇怪了,因為slave執行任務時應該鏈接的是master節點的8030端口,正常情況下應該為 masterIP: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,故障依舊。

繼續排查,查看環境變量,看是否slave啟動時是否沒有加載yarn-site.xml。env|grep YARN 直接查看所有YARN的環境變量,其中可以看到YARN_CONF_DIR = HADOOP_CONF_DIR ,並且指向了正確的目錄路徑。

那么就很奇怪了,繼續排查。如果環境方面都沒有問題,寫一下 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。

Oh my god!

成功了!

看看時間,為了這個問題已經搞了大半個夜了。算了,先睡覺。具體問題留待周一檢查。

但初步認為:應該是yarn的client再執行job時,會取一個masterIP 值,如果取不到,則默認取yarn-defalut中的值。所以關鍵就是找到從哪里取值。這個問題看看源碼應該不是大問題。

OK,睡覺去!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM