2015-09-01 2 views
0

У меня есть проект, который кратко выглядит следующим образом: создайте приложение, которое может принимать задачи, написанные на Java, которые выполняют какое-то вычисление и запускают задачи на нескольких машинах * (задачи отдельно и не зависят друг от друга).Должен ли я использовать распределенную систему, такую ​​как Mesos?

* машины может быть запущена различных ОС (в основном Windows, и Ubuntu)

Мой вопрос, я должен использовать распределенную систему как Apache Mesos для этого?

Первое, что я изучил, это библиотеки/фреймворки Java P2P, и единственное, что я смог найти, это JXTA (https://jxta.kenai.com/), который был оставлен Oracle. Затем я просмотрел Apache Mesos (http://mesos.apache.org/), который мне кажется подходящим, базовая система, которая может работать на нескольких машинах, что позволяет ей обмениваться ресурсами при обработке задач. Я потратил немного времени, пытаясь заставить его работать локально в качестве примера, однако он кажется немного сложным и навсегда заработает.

Если я должен использовать Mesos, то должен ли я разработать Framework для моего проекта, который принимает все мои java-задачи или существуют ли там существующие решения?

Чтобы проверить его на небольшом расстоянии локально, вы должны установить его на свой компьютер, установить его в мастер, создать виртуальную машину, установить ее на этом и сделать это подчиненным, каким-то образом перенаправить ваш подчиненный на этот мастер? В документации и примерах не показано, как точно подключить ведомый к сети ведущему устройству.

Заранее благодарен за любую помощь или предложения.

+1

Используете ли вы традиционный случайный сет [grid computing] (https://en.wikipedia.org/wiki/Grid_computing)? – marbu

+0

@marbu Я быстро посмотрел на него, но пока не решил решения. Завтра я загляну в нее, быстрый поиск Google бросил http://www.jppf.org/, который выглядит многообещающим. – Tom

+0

Может быть? Все основные альтернативы, похожие на Mesos, как представляется, упоминаются с небольшим описанием здесь: http://docs.deis.io/en/latest/customizing_deis/choosing-a-scheduler/ (не знаю, что такое продукт этого веб-сайта) но все эти системы сложны в настройке и еще не решают вашу проблему. Это больше подходит для развертывания крупномасштабных развертываний, не специализированных для вычислительных задач. – zapl

ответ

2

Вы можете определенно использовать Mesos для задания, которое вы описали. Вам не нужно разрабатывать фреймворк с нуля, вместо этого вы можете использовать планировщик, например Marathon, в случае, если у вас давно запущены задачи, или Chronos для одноразовых или повторяющихся задач.

Для реальной установки вы определенно хотели бы иметь более одной машины, но вы могли бы просто запустить все (Mesos master, Mesos slave и рамки) с одной машины, если вы только заинтересованы в эксперименте. Examples раздел Mesos Getting Started Guide демонстрирует, как это сделать.

+0

Одно дополнение: поддержка Windows в Mesos - это WIP. Но почему это важно для задач JAVA? – rukletsov

+0

@rukletsov Это не имело значения, но я думал, что хочу указать на вопрос, чтобы быть уверенным. – Tom

+0

@hartem за информацию! Я ознакомился с руководством по началу работы с Mesos, и сейчас я нахожусь в этом процессе, пытаясь заставить Mesos работать на двух машинах, один из которых является подчиненным, а один - мастером, который на самом деле не объясняет, что хорошо документация. – Tom

Смежные вопросы