Apache Mesos 0.27 fetcher Error: Address already in use:

Apache Mesos 0.27 fetcher Error: Address already in use:

在 Ubuntu 14.04(3 master - 3 slave 设置)上将 apache Mesos 升级到 0.27 后,我在尝试使用 Spark 1.6(客户端模式不使用 docker 图片):

 I0219 12:40:47.684662 11484 fetcher.cpp:379] Fetching URI   
 'hdfs://auto-ha/spark/spark.tgz'
 I0219 12:40:47.684691 11484 fetcher.cpp:250] Fetching directly into the sandbox directory
 I0219 12:40:47.684720 11484 fetcher.cpp:187] Fetching URI     
 'hdfs://auto-ha/spark/spark.tgz'
 I0219 12:40:48.139446 11484 fetcher.cpp:109] Downloading resource     
 with Hadoop client from 'hdfs://auto-ha/spark/spark.tgz' to     '/tmp/mesos/slaves/a7907b94-6dc9-437c-b027-b71379a9e0e1-  S3/frameworks/a7907b94-6dc9-437c-b027-b71379a9e0e1- 0006/executors/5/runs/48753051-450a-4043-908d-58f277633cf4/spark.tgz'
 F0219 12:40:48.140929 11484 process.cpp:892] Failed to initialize: Failed   to bind on 172.16.8.166:5051: Address already in use: Address already in   use [98]
*** Check failure stack trace: ***
    @     0x7ff38fe76a3d  google::LogMessage::Fail()
@     0x7ff38fe7887d  google::LogMessage::SendToLog()
@     0x7ff38fe7662c  google::LogMessage::Flush()
@     0x7ff38fe76839  google::LogMessage::~LogMessage()
@     0x7ff38fe777a2  google::ErrnoLogMessage::~ErrnoLogMessage()
@     0x7ff38fe1d149  process::initialize()
@     0x7ff38fe1e7d2  process::ProcessBase::ProcessBase()
@     0x7ff38fe4d631  process::reap()
@     0x7ff38fe56235  process::subprocess()
@     0x7ff38f603059  HDFS::copyToLocal()
@           0x40eecd  download()
@           0x40b8ea  main
@     0x7ff38de81ec5  (unknown)
@           0x40d2c3  (unknown)
Aborted (core dumped)

End fetcher log for container 48753051-450a-4043-908d-58f277633cf4

似乎是 mesos-fetcher 上的端口冲突,但是使用:

sudo lsof -i | grep 5051

似乎没有任何东西在该端口上侦听。

Mesos 0.26 在相同的设置上运行良好

hdfs 文件系统正在运行,docker 容器化器运行良好。 我也检查了 fetcher 端口配置,但没有。

有什么提示吗?

谢谢!

端口 5051mesos-slave 用于与 mesos-master 通信。要检查端口使用情况,请使用:

netstat -tulpn | grep 5051

或(没有端口名称转换 - 端口 5051 被称为 enbd-cstatd

lsof -i -P | grep 5051

Mesos slave 通常使用更高范围的端口31000-32000,通过 Mesosphere 版本,您可以轻松控制分配给 Mesos 任务的端口范围:

echo "[20000-32000]" > /etc/mesos-slave/resources/ports

冷重启并升级集群的所有节点后(mesos 包也升级)一切正常运行。

升级到 0.27 后似乎是 mesos 的一个错误。

谢谢!