美文网首页
关于Spark/Hadoop中Master/Slave IP不正

关于Spark/Hadoop中Master/Slave IP不正

作者: ecce | 来源:发表于2019-07-11 14:28 被阅读0次

在配置Spark StandAlone Mode的时候,我遇到了Slave无法向正确的Master IP发送数据的问题。通常这类问题都来源于没有正确配置./conf/spark_env.sh文件,只要在这个文件里定义好了SPARK_LOCAL_IPSPARK_MASTER_HOST,就可以解决这个问题。而我设置了configure文件之后问题依然存在。

原因在于Master Node上有多个网卡,每个网卡又有多个IP地址。在Spark的底层实现中,它调用了JAVA的InetAddress.getlocalhost()函数来获得其他节点的IP地址,这个函数就是通过Host name来找到对应的Host IP所以这个函数只会返回众多IP地址中的一个,所以不一定是你想要的正确地址。

解决的方法也非常简单,JAVA的这个函数会到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之间的映射关系,JAVA的函数就会返回正确的IP地址了。

相关文章

网友评论

      本文标题:关于Spark/Hadoop中Master/Slave IP不正

      本文链接:https://www.haomeiwen.com/subject/irarkctx.html