天天看點

hive 報:java.net.NoRouteToHostException: 沒有到主機的路由

這種沒有到主機的路由問題屢見不鮮了,一般要麼是namenode 與 datanode 主機名間本身互ping就ping不通,這個機率較小,因為都知道要保證master與slaves 節點是能正常通信,是以都會檢查。那麼最有可能就是防火牆沒有關閉,或者因為檢視不出防火牆狀态,是以誤以為防火牆關閉了。

解決方案:

(1)從namenode主機ping其它slaves節點的主機名(注意是slaves節點的主機名),如果ping不通,原因可能是namenode節點的/etc/hosts 未配置主機名與IP位址的映射關系,補全主機名與IP位址的映射關系。

(2)從datanode主機ping ​​master​​​節點的​​主機​​​名(注意也是節點的主機名),如果ping不通,原因可能是datenode節點的/​​etc​​​/hosts 未配置主機名與IP位址的映射關系,補全​​主機​​名與IP位址的映射關系。

(3)檢視各機器節點的防火牆是否關閉(或者設定防火牆開啟,但對我們的指定端口開放,最好是關閉防火牆):

以下針對不同版本的Linux系統檢查​​防火牆​​的狀态,及關閉防火牆: