Я делюсь Linux-боксом с некоторыми коллегами, все они работают в мезосфере. Самый удобный способ протестировать фреймворк, с которым я обычно работаю, — это запустить 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/2056-200208702505-301402052506-31807-0/frameworks/201402051726-3823062160-5050-31807-0/frameworks -20015-0000/executors/default/runs/d46e7a7d-29a2-4f66-83c9-b5863e018fee'Отказано в доступе
К сожалению, mesos-local.sh
не предлагает флаг для переопределения этого пути, тогда как mesos-master.sh
делает это через --work_dir=VALUE
.
Следовательно, очевидный обходной путь — не использовать mesos-local.sh
, а использовать master и slave как отдельные экземпляры. Хотя не слишком удобно...