Назад | Перейти на главную страницу

Что такое Hadoop и для чего он используется?

Некоторое время мне нравится читать ServerFault, и я наткнулся на немало тем о Hadoop. У меня были небольшие проблемы с выяснением того, что он делает с глобальной точки зрения.

Итак, мой вопрос довольно прост: что такое Hadoop? Что оно делает ? Для чего его используют ? Почему это надрывает задницу?

Редактировать : Если у кого-то есть демонстрации / объяснения случаев использования Hadoop, это было бы фантастически.

Прямо из пасть лошади:

Hadoop - это платформа для запуска приложений в больших кластерах, построенных на стандартном оборудовании. Инфраструктура Hadoop прозрачно обеспечивает как надежность приложений, так и перемещение данных. Hadoop реализует вычислительную парадигму под названием Map / Reduce, в которой приложение разделено на множество небольших фрагментов работы, каждый из которых может быть выполнен или повторно выполнен на любом узле кластера. Кроме того, он предоставляет распределенную файловую систему (HDFS), которая хранит данные на вычислительных узлах, обеспечивая очень высокую совокупную пропускную способность в кластере. И Map / Reduce, и распределенная файловая система спроектированы таким образом, что сбои узлов автоматически обрабатываются платформой.

Map / Reduce - парадигма программирования, ставшая популярной благодаря Google где в задаче делится на небольшие части и распределяется по большому количеству узлов для обработки (карта), а затем результаты суммируются в окончательный ответ (сокращение). Google и Yahoo используют это, помимо прочего, для своих поисковых систем.

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

Вы можете прочитать об этом на интернет сайт.

Что касается некоторых примеров, Пол привел несколько, но вот еще несколько, которые вы могли бы сделать, но не настолько веб-ориентированные:

  • Рендеринг 3D фильма. На этапе «сопоставление» геометрия для каждого кадра распределяется по разным узлам, узлы визуализируют ее, а визуализированные кадры повторно объединяются на этапе «уменьшения».
  • Вычисление энергии в системе в молекулярной модели. Каждый кадр системной траектории распределяется по узлу на этапе «карты». Узлы вычисляют энергию для каждого кадра,
    а затем результаты суммируются на этапе «уменьшить».

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

У Cloudera есть несколько отличных видеороликов, в которых объясняются принципы Map Reduce и Hadoop.

http://www.cloudera.com/hadoop-training-basic

Одна из основных идей, лежащих в основе MapReduce, заключается в том, что для больших наборов данных вы будете привязаны к своим дискам, поэтому в Hadoop HDFS дает вам возможность разделять вещи между множеством узлов, обеспечивая параллельную обработку.

Некоторые виды использования Hadoop, представляющие интерес для системных администраторов, часто связаны с обработкой больших наборов файлов журналов - я могу опубликовать только одну ссылку, но они включают, Google должен найти их:

  1. Запрос журнала почты Rackspace
  2. Анализ журнала Apache с помощью pig - см. Блог Cloudera
  3. Yahoo! бороться со спамом

Изначально hadoop разрабатывался для большого количества наборов данных в среде OLAP.

С введением Hbase поверх hadoop можно также использовать для обработки OLAP. Hadoop - это платформа со всеми подкомпонентами, такими как map reduce, hdfs, hbase, pig.

Я нашел одну статью с основами HADoop в Почему представлен Hadoop.

В Hadoop хранение данных в виде файлов, а не в таблицах, столбцах.