我正在与一些同事共享一个 linux 盒子,他们都在 mesos 生态圈中开发。测试我经常使用的框架的最方便的方法是运行mesos-local.sh
(将主服务器和从服务器组合在一起)。
只要我的同事都没有这样做,那就很好。一旦其中一个确实使用了该快捷方式,其他人就无法再这样做了,因为主特定临时文件存储在/tmp/mesos
其中,并且运行该 mesos 实例的用户将拥有这些文件和文件夹的所有权。因此,当另一个用户尝试执行相同的操作时,在尝试从框架运行任何任务时会发生以下情况;
F0207 05:06:02.574882 20038 paths.hpp:344] CHECK_SOME(mkdir): 无法创建执行程序目录 '/tmp/mesos/0/slaves/201402051726-3823062160-5050-31807-0/frameworks/20140207050505-508 -20015-0000/executors/default/runs/d46e7a7d-29a2-4f66-83c9-b5863e018fee'权限被拒绝
不幸的是,mesos-local.sh
它不提供覆盖该路径的标志,而mesos-master.sh
via 提供--work_dir=VALUE
。
因此,明显的解决方法是不使用mesos-local.sh
主和从作为单独的实例。虽然不太方便...