【问题标题】:Transport Endpoint Not Connected - Mesos Slave / Master传输端点未连接 - Mesos 从/主
【发布时间】:2015-10-29 18:56:27
【问题描述】:

我正在尝试将 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

如果我在与主机相同的 VM 上运行从属服务器,它就可以正常工作。

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

编辑 1:

主从都运行在一个专用的虚拟机上。

两个虚拟机 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:

slave日志可以在http://pastebin.com/CXZUBHKr找到

主日志可以在http://pastebin.com/thYR1par找到

【问题讨论】:

  • 你能在你的slave上显示ipconfig的输出吗?我怀疑它用错误的 IP 注册到 master
  • 我编辑了问题
  • 我建议基于getting started document。你可以试试./mesos-slave.sh --master=10.129.62.61:5050,而不是./mesos-slave.sh --master=zk://10.129.62.61:2181/mesos,看看是否可行?因为 mesos-master 进程正在监听 5050 端口。
  • 我得到同样的错误

标签: linux debian virtualbox mesos marathon


【解决方案1】:
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

这是错误提示。

你的奴隶暴露了错误的 IP。

--ip=10.129.62.49 附加到从命令中,它就可以工作了。

【讨论】:

    【解决方案2】:

    升级 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 服务,它又重新上线了。

    【讨论】:

    • 这对我有用,但我只需要删除所有主服务器上的 /data/tmp/mesos/replicated_log/,而不是整个工作目录,然后还有 zookeeper /mesos 节点。这实际上记录在这里:mesos.apache.org/documentation/latest/operational-guide(增加仲裁大小)
    【解决方案3】:

    我遇到了类似的问题。 我的奴隶日志会被填满

        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 机器上)并被添加到潜在的 master 池中。因此,我选出的主节点将菊花链围绕我的主节点。多次重启 master 和 slave 无济于事,这个问题会在 master 选举后 1 分钟内持续返回。

    我的解决方案来自这个 stackoverflow 问题(谢谢)和 github gist note 中的提示。

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

        MESOS_QUORUM=2
    

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

    但是我添加到/etc/default/mesos-master 重启了mesos-masters和slave,问题还是没有回来。

    希望对你有帮助。

    【讨论】:

    • 为避免重复,可以改为MESOS_QUORUM=`cat /etc/mesos-master/quorum`
    • 这真的成功了!值得注意的是,确实需要设置MESOS_QUORUM 而不仅仅是QUORUM,因为所有其他设置都不需要MESOS_ 前缀。奇怪...对我来说似乎是错误。
    • 注意:Slave 断开连接也可能是由于 /etc/default/mesos 中的绑定 IP 地址设置不正确造成的。见:marc.info/?l=mesos-user&m=142539883727970&w=2
    【解决方案4】:

    改为使用--ip=10.129.62.49 运行从站

    【讨论】:

    • 在某处上传从属日志并提供链接,以便我们查看发生了什么。
    猜你喜欢
    • 2018-11-06
    • 2016-01-13
    • 2012-12-30
    • 2019-03-15
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多