Объединенные в федерацию (Синхронизировавшие) серверы Подрывной деятельности?

Прочитайте Понимание замыканий в документации Spark. Большинство соответствующих частей (просто замените counter на ваш splitMap):

Операции RDD, которые изменяют переменные за пределами их области действия, могут быть частым источником путаницы ...

Основная проблема заключается в том, что поведение вышеуказанного кода не определено. В локальном режиме с одним JVM приведенный выше код суммирует значения в RDD и сохраняет их в счетчике. Это связано с тем, что и RDD, и счетчик переменных находятся в одном и том же пространстве памяти на узле драйвера.

Однако в режиме кластера, что происходит, сложнее, и выше может не работать должным образом. Для выполнения заданий Spark разбивает обработку операций RDD на задачи - каждый из которых управляется исполнителем. Перед выполнением Spark вычисляет замыкание. Закрытие - это те переменные и методы, которые должны быть видны исполнителю для выполнения его вычислений на RDD (в данном случае foreach ()). Это закрытие сериализуется и отправляется каждому исполнителю. В локальном режиме есть только один исполнитель, поэтому все имеет одинаковое закрытие. Однако в других режимах это не так, и исполнители, работающие на отдельных рабочих узлах, имеют свою собственную копию закрытия.

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

Чтобы обеспечить четкое поведение в этих сценариях, следует использовать Аккумулятор. Аккумуляторы Spark используются специально для обеспечения механизма безопасного обновления переменной, когда выполнение разбивается на рабочие узлы в кластере. Раздел «Аккумуляторы» этого руководства более подробно обсуждает их.

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

blockquote>

19
задан Ryan Fox 17 August 2008 в 02:06
поделиться

4 ответа

Это - более или менее идеальный вариант использования для SVK. SVK является фронтэндом командной строки для подверсии, которая работает со всей локальной копией репозитория. Таким образом, Ваши фиксации, обновления, и т.д. работают над локальным репозиторием, и можно затем синхронизировать с ведущим устройством. Я обычно рекомендовал бы SVK по простой подверсии так или иначе, поскольку это делает много вещей более хорошим. Никакие .svn папки, лучше переходя и объединяясь, лучшее разрешение конфликтов.

5
ответ дан 30 November 2019 в 05:04
поделиться

Подверсия 1,5 представленных записи через поддержку прокси webdav серверов по существующей поддержке SvnSync, которая была добавлена в 1,4. Это позволяет Вам иметь локальные зеркала для получения файлов и истории, но фиксации фиксируются непосредственно главному репозиторию. Если установка правильно локальные зеркала сразу получает изменения.

Посмотрите Книга Svn для получения дополнительной информации.

7
ответ дан 30 November 2019 в 05:04
поделиться

Кажется, что Вам могло бы понравиться Мерзавец . Существует Google Talk , объясняя все об этом .

3
ответ дан 30 November 2019 в 05:04
поделиться

Вероятно, не точно, что Ваш поиск, но Вы можете реализовывать кластеризацию уровня ОС.

1
ответ дан 30 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: