Управление распределенным кластером? - PullRequest
5 голосов
/ 15 апреля 2011

Предположим, что вы создали кластер кассандры. У вас есть база данных размером 10 [ТБ], которая равномерно распределена между 10 узлами, все работает гладко и т. Д.

Предположим, что в вашем распоряжении 100 машин, каждая из которых пытается прочитать (разные) данные из кластера кассандры. Кроме того, у вас есть много заданий, которые нужно постоянно запускать, каждое задание в разное время (и, очевидно, каждое задание нужно запускать на другой машине).

Как вы управляете всеми этими заданиями / заданиями? как вы распределяете задачи между машинами? как вы отслеживаете рабочие места / машины в процессе?

Существуют ли какие-либо инструменты с открытым исходным кодом (предпочтительно с Python клиентом), которые помогают делать это в среде Linux?

1 Ответ

3 голосов
/ 15 апреля 2011

Вам нужна Grid / HPC Framework для управления вашей распределенной инфраструктурой и запуска заданий.

В Unix / Linux есть две системы, которые могут быть вам полезны. Портативные пакетные системы (PBS) или Condor

Как вы управляете всеми этими задачи / работы?

И у Кондора, и у PBS есть основная потребность действовать как рецептор каждой работы / задачи, для каждой работы / задачи вы можете связать уровень приоритета и дискриминаторов. Администратор кластера устанавливает правила на основе этих дискриминаторов для планирования заданий.

как вы распространяете задачи между машинами?

Condor или PBS сделают это за вас, вам нужно только отправить задание на главный узел и указать приоритет, входы и выходы и т. Д.

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

как ты отслеживать работу / машины в процесс?

И PBS, и Condor имеют одинаковые команды top для вывода списка задач, которые находятся в очереди, ожидают, выполняются или отменяются. У них также есть утилиты для остановки или отмены задания, если процесс позволяет делать снимки.

Для большого кластера я советую попробовать Кондор. Это было целую вечность, чтобы решать проблемы точно так же, как они у вас. Здесь есть несколько примеров для Condor + Python

Другие более поздние решения, которые следует рассмотреть:

  • Celery распределенная очередь задач для Python.
  • DiscoProject распределенная вычислительная среда, основанная на парадигме MapReduce.
...