Как распределенные вычисления применимы к веб-разработке или программированию в целом?

Я собираюсь использовать Apache Hadoop, заголовки гласят:

Проект Apache Hadoop разрабатывает программное обеспечение с открытым исходным кодом для надежных, масштабируемых распределенных вычислений.

Я могу связать «масштабируемость» с программированием, но я просто не знаю, как это «распространение» может помочь мне в моем развитии. Согласно википедии:

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

Значит ли это, что я могу развертывать свои веб-приложения на нескольких компьютерах и выполнять какие-то «интенсивные вычисления»? Мне приходят в голову термины «Сети доставки контента» и «Облачные вычисления».


person yretuta    schedule 15.12.2010    source источник


Ответы (3)


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

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

Я обнаружил, что наиболее эффективное использование распределенных вычислений - это когда вы думаете о соединении вместе отдельных сервисов, каждая из которых имеет разные возможности (что может быть по техническим причинам, а может и нет; иногда это по коммерческим или юридическим причинам. что вещи должны быть разделены), и где каждая из этих услуг может предоставляться многими компонентами в разных местах. Существуют и продолжают оставаться проблемы с балансированием потребности в производительности (которая объединяет компоненты) и потребности в устойчивости (которая имеет тенденцию приводить к распространению и репликации) в общем контексте общей карты возможностей.

Боже мой! Этот абзац звучит ужасно! Я пытаюсь сказать, что это все компромиссы, и вы должны быть готовы к тому, что с первого раза не все поймете правильно.

(Hadoop - это механизм для создания распределенного файлового хранилища и для эффективного применения определенных классов операций - тех, которые хорошо подходят для MapReduce или других подобных алгоритмов разброса-сбора - во всем наборе данных. Если этот ботинок подходит, используйте его. Но он не решает всех проблем, и слава богу! Вещи, которые могут делать все, как правило, очень похожи на вещи, которые на самом деле вообще ничего не могут, а их полезность и понятность заключаются в ограничениях.)

person Donal Fellows    schedule 15.12.2010

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

Это означает, что вы, вероятно, не хотите использовать его для «развертывания приложения». Однако вы можете использовать его для обработки статистики вашего приложения. Например, у вас могут быть очень большие журналы пользовательских данных. Это произойдет, если ваши пользовательские данные станут слишком большими, чтобы поместиться на одном жестком диске, и / или обработка статистики на одной машине займет слишком много времени (с использованием стандартных методов, таких как SQL-запрос).

person Fragsworth    schedule 15.12.2010

Игам. В то время как традиционные роли «клиентов» и «серверов» были довольно стабильны с 1960 по 2005 год.

Я считаю, что всеми фибрами своего существа распределенные вычисления заключаются в том, что все мы носим процессоры в карманах.

Телефоны выполняют вычислительную работу. Телефонам НЕ нужны централизованные серверы, но они ДОЛЖНЫ приносить пользу.

Телефоны, смартфоны, планшеты - примеры того, как идут распределенные вычисления.

Теперь вы можете сделать базовую станцию ​​Wi-Fi из Android-устройства. Итак, теперь телефон становится своего рода сервером только на то мгновение в кофейне, когда вы включаете его для этого симпатичного человека без интернета рядом с вами .... а теперь я отвлекся .......

person hunterp    schedule 15.12.2010
comment
Что, черт возьми, вообще означает Игам? - person doubleOrt; 19.09.2018