传输端点未连接 - Mesos 从站/主站

Transport Endpoint Not Connected - Mesos Slave / Master

我正在尝试将 Mesos 从服务器连接到它的主服务器。每当从站尝试连接到主站时,我都会收到以下消息:

I0806 16:39:59.090845   935 hierarchical.hpp:528] Added slave 20150806-163941-1027506442-5050-921-S3 (debian) with cpus(*):1; mem(*):1938; disk(*):3777; ports(*):[31000-32000] (allocated: )
E0806 16:39:59.091384   940 socket.hpp:107] Shutdown failed on fd=25: Transport endpoint is not connected [107]
I0806 16:39:59.091508   940 master.cpp:3395] Registered slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian) with cpus(*):1; mem(*):1938; disk(*):3777; ports(*):[31000-32000]
I0806 16:39:59.091747   940 master.cpp:1006] Slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian) disconnected
I0806 16:39:59.091868   940 master.cpp:2203] Disconnecting slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian)
I0806 16:39:59.092031   940 master.cpp:2222] Deactivating slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian)
I0806 16:39:59.092248   939 hierarchical.hpp:621] Slave 20150806-163941-1027506442-5050-921-S3 deactivated

错误似乎是:

E0806 16:39:59.091384 940 socket.hpp:107] fd=25 时关闭失败:传输端点未连接 [107]

主机开始使用:

./mesos-master.sh --ip=10.129.62.61 --work_dir=~/Mesos/mesos-0.23.0/workdir/ --zk=zk://10.129.62.61:2181/mesos --quorum=1

和奴隶

./mesos-slave.sh --master=zk://10.129.62.61:2181/mesos

如果我 运行 从站与主机在同一个虚拟机上,它工作正常。

我在互联网上找不到太多信息。我在 VirtualBox 5 上 运行 安装两个虚拟盒子 (Debian 8.1)。主机是 windows 7.

编辑 1:

主服务器和从服务器都 运行 在专用 VM 上。

两个虚拟机 nextorks 都使用桥接网络配置。

来自主人的ifconfig:

eth0      Link encap:Ethernet  HWaddr 08:00:27:cc:6c:6e
          inet addr:10.129.62.61  Bcast:10.129.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fecc:6c6e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5335953 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1422428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:595886271 (568.2 MiB)  TX bytes:362423868 (345.6 MiB)

来自从机的 ifconfig:

eth0      Link encap:Ethernet  HWaddr 08:00:27:56:83:20
          inet addr:10.129.62.49  Bcast:10.129.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fe56:8320/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4358561 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3825 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:397126834 (378.7 MiB)  TX bytes:354116 (345.8 KiB)

编辑 2:

可以在 http://pastebin.com/CXZUBHKr

找到从属日志

可以在 http://pastebin.com/thYR1par

找到主日志

运行奴隶用--ip=10.129.62.49代替

我遇到了类似的问题。 我的奴隶日志将充满

    E0812 15:58:04.017990  2193 socket.hpp:107] Shutdown failed on fd=13: Transport endpoint is not connected [107]

我的主人会

    F0120 20:45:48.025610 12116 master.cpp:1083] Recovery failed: Failed to recover registrar: Failed to perform fetch within 1mins

而且 master 会死亡,并且会发生新的选举,被杀死的 master 将由 upstart(我在 Centos 6 机器上)重新启动,并被添加到潜在的 masters 池中。因此,我选出的主节点将以菊花链形式围绕我的主节点。许多主从的重启没有任何作用,问题会在主选举的 1 分钟内持续 return。

我的解决方案来自这个 Whosebug 问题(谢谢)和 github gist note.

中的提示

它的要点是/etc/default/mesos-master必须指定一个法定人数(对于mesos master的数量它需要是正确的,在我的例子中是3)

    MESOS_QUORUM=2

这对我来说很奇怪,因为我在文件中有相同的信息 /etc/mesos-master/quorum

但我将它添加到 /etc/default/mesos-master 重新启动了 mesos-masters 和 slaves,问题没有 returned。

希望对您有所帮助。

我在升级 mesos 版本(例如 0.20.0 -> 0.27.0)时 运行 在日志中遇到了这个错误。有时旧版本的数据与其他版本不兼容。

以下是我的补救方法:

首先确保所有节点都停止了 mesos-master 服务:

sudo service mesos-master stop

然后清除所有潜在的旧数据:

  1. 删除$MESOS_WORK_DIR(在我的例子中是/var/mesos):

    sudo rm -rf /var/mesos
    
  2. 清除 ZooKeeper 中的 mesos 数据:

    $ zkCli.sh
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0] rmr /mesos
    [zk: localhost:2181(CONNECTED) 0] quit
    Quitting...
    

完成这些步骤后,我在所有节点上启动了 mesos-master 服务,它重新上线了。

I0806 16:39:59.091747   940 master.cpp:1006] Slave 20150806-163941-1027506442-5050-921-S3 at slave(1)@127.0.1.1:5051 (debian) disconnected

这是错误提示。

你的slave暴露了错误的IP。

--ip=10.129.62.49 附加到从属命令,它起作用了。