Хобрук: Ваш путь к мастерству в программировании

Что я должен использовать для этого проекта? Кластер, грид или распределенные вычисления?

У меня есть проект, в котором я беру отдельные задачи, независимые друг от друга, написанные на Java, и выполняю задачи на компьютерах в локальной сети для эффективного решения задач. Если задачи являются потокобезопасными, они будут выполняться как потоки, в противном случае — как новые JVM (определенные на исходном компьютере), и результаты будут отправлены обратно на исходный компьютер для вывода.

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

Следует отметить, что компьютеры в локальной сети работают под управлением Windows 7, что означает, что какое бы решение я ни нашел, оно должно работать в Windows (некоторые решения могут быть только * nix).


  • Запуск нескольких java-приложений с отдельными экземплярами JVM звучит для меня нелогично. плюс выберите стабильную ОС, на которую вы можете рассчитывать, например, RHEL (или ее семейство), кроме того, вам нужно больше объяснить, зависит от того, что вы пытаетесь сделать, вы можете получить разные решения 05.09.2015
  • @ user5266804, вы говорите, что Windows не является стабильной ОС? Какие у вас есть доказательства, подтверждающие это утверждение? 05.09.2015

Ответы:


1

Я понимаю, как это заставляет вас путаться между тремя словами, которые вы упомянули, но их нельзя сравнивать друг с другом, позвольте мне объяснить, почему;

ВИКИ:

Кластер. Компьютерный кластер состоит из набора слабо или тесно связанных компьютеров, которые работают вместе, поэтому во многих отношениях их можно рассматривать как единую систему.

Грид. Грид-вычисления — это сбор компьютерных ресурсов из разных мест для достижения общей цели.

Распределенные вычисления. Распределенные вычисления — это область компьютерных наук, изучающая распределенные системы. Распределенная система — это программная система, в которой компоненты, расположенные на объединенных в сеть компьютерах, общаются и координируют свои действия, передавая сообщения.

  1. Таким образом, кластеры — это (на сетевом или программном уровне) множество компьютеров, действующих как один.
  2. Grid (вычисление) использует кластер для выполнения задачи.
  3. Распределенные вычисления — это один из способов выполнения задач.

Теперь вам нужно либо использовать Hadoop или Apache Spark для таких задач, либо использовать любой DataGrid в памяти для такой цели, но это может быть излишним, если вы не можете сказать, что именно вы делаете.

06.09.2015
  • Спасибо за разбор! Просто чтобы уточнить, в моей ситуации, когда я хочу выполнить ряд задач Java с одной машины, и чтобы эти задачи выполнялись в сети машин, я мог бы либо использовать локальный кластер, где система может просматриваться как единое целое, а задачи может выполняться и работать в системе или в распределенной системе, где задачи отправляются на отдельные машины, верно? Также я заметил, что многие (если не все) проекты Apache основаны только на *unix, знаете ли вы что-нибудь подобное, работающее в Windows (это может быть даже среда Java или что-то подобное)? 07.09.2015
  • @TomWilkins Что это за задачи? Являются ли они обширными вычислениями или данных слишком много. Зачем нужно их разделять? 07.09.2015
  • @TomWilkins Есть проекты в Windows, но все зависит от того, какие задачи вы собираетесь выполнять. 07.09.2015
  • Задачи представляют собой вычисления Java, которые выполняются независимо друг от друга, некоторые потокобезопасны, некоторые нет (они будут выполняться в своей собственной JVM). Я мог бы подумать о создании своего собственного расписания, но это потребовало бы много сложной работы с моей стороны, поэтому я искал существующее решение (этот вопрос заключался в том, чтобы определить, на какие решения смотреть). 08.09.2015
  • Насколько велик ваш кластер? У меня может быть ответ, но я хочу сначала понять требование :) 08.09.2015
  • Я не уверен на 100%, но я думаю, что потенциально можно использовать около 70 машин. Но, очевидно, я бы начал с 2 машин и увеличивал масштаб во время разработки. 08.09.2015
  • Вы слышали о MapReduce? Лучшим вариантом для этого будет либо Hadoop/Apache Spark (в зависимости от точного использования), либо использование сетки данных в памяти (которая также включает MapReduce). 08.09.2015
  • @TomWilkins Не могли бы вы тогда принять ответ? :) 11.09.2015
  • Новые материалы

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..

    Расистский и сексистский робот, обученный в Интернете
    Его ИИ основан на предвзятых данных, которые создают предрассудки. Он словно переходит из одного эпизода в другой из серии Черное зеркало , а вместо этого представляет собой хронику..

    Управление состоянием в микрофронтендах
    Стратегии бесперебойного сотрудничества Микро-фронтенды — это быстро растущая тенденция в сфере фронтенда, гарантирующая, что удовольствие не ограничивается исключительно бэкэнд-системами..