【问题标题】:Spark: is using wrong network interfaceSpark:使用错误的网络接口
【发布时间】:2018-03-22 22:40:04
【问题描述】:

我在 docker 容器中使用 hadoop 集群(我使用的是覆盖网络)

我在同一主机中有 2 个容器(master 和 slave2) 另一个在不同的主机(slave1)

容器可以访问仅由它们使用的本地网络10.0.0.0

master和slave2容器也可以访问另一个与主机172.18.0.0共享的网络

Slave1 可以访问与其主机共享的不同网络172.18.0.0

两台主机中的网络172.18.0.0是独立的。

所以要恢复每个容器都有两个 ip 地址

  • 主人:10.0.0.2172.18.0.2
  • salve2:10.0.0.3172.18.0.3
  • salve3; 10.0.0.4172.18.0.2

树容器必须与 trow 10.0.0.0 网络通信。但是发生了一些奇怪的事情。

当我在 pyspark 中运行这个脚本时

def getIP(iter):
  import socket
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  s.connect(("8.8.8.8", 80))
  return [s.getsockname()[0]]


rdd = sc.parallelize(range(3),3)
hosts = rdd.mapPartitions(getIP).collect()
for h in hosts:
  print(h)

这个问题的输出是

172.18.0.2
172.18.0.3
172.18.0.3

这是错误的,因为容器只能通信 throw 10.0.0.0 网络接口。

这是我的yarn-site.xml 文件

<configuration>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>
            yarn.nodemanager.aux-services.mapreduce_shuffle.class
        </name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-master</value>
    </property>
</configuration>

hadoop-master 是地址 10.0.0.2 的主机名

如何让 spark 使用 10.0.0.2 接口。

谢谢。

【问题讨论】:

    标签: apache-spark hadoop docker pyspark network-interface


    【解决方案1】:

    我不认为你的 spark 使用了错误的网络,否则你甚至无法运行这个程序。

    您的getIP 方法返回用于连接8.8.8.8 的主机IP。如您所述,所有主机都有两个网络,而 10.0.0.* 仅由这 3 个节点共享。所以主机使用172.18.0.*连接8.8.8.8

    您可以尝试查看s.connect(("8.8.8.8", 80))s.connect(("10.0.0.2", 80))s.connect(("localhost", 80)) 之间的区别。

    【讨论】:

    猜你喜欢
    • 2018-12-15
    • 1970-01-01
    • 2020-05-13
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多