關(guān)于Spark/Hadoop中Master/Slave IP不正確的問題

在配置Spark StandAlone Mode的時候,我遇到了Slave無法向正確的Master IP發(fā)送數(shù)據(jù)的問題。通常這類問題都來源于沒有正確配置./conf/spark_env.sh文件,只要在這個文件里定義好了SPARK_LOCAL_IPSPARK_MASTER_HOST,就可以解決這個問題。而我設(shè)置了configure文件之后問題依然存在。

原因在于Master Node上有多個網(wǎng)卡,每個網(wǎng)卡又有多個IP地址。在Spark的底層實現(xiàn)中,它調(diào)用了JAVA的InetAddress.getlocalhost()函數(shù)來獲得其他節(jié)點的IP地址,這個函數(shù)就是通過Host name來找到對應(yīng)的Host IP所以這個函數(shù)只會返回眾多IP地址中的一個,所以不一定是你想要的正確地址。

解決的方法也非常簡單,JAVA的這個函數(shù)會到Linux中的/etc/hosts這個文件中去指定Host name到Host IP的映射:

192.168.20.203   Cluster_Node_3
192.168.20.204   Cluster_Node_4

這樣就建立起了Host Name和Host IP之間的映射關(guān)系,JAVA的函數(shù)就會返回正確的IP地址了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容