Поделиться через


Что такое Apache Hadoop в Azure HDInsight?

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

Azure HDInsight — это полностью управляемая комплексная облачная служба аналитики с открытым кодом, предназначенная для предприятий. Тип кластера Apache Hadoop в Azure HDInsight позволяет использовать распределенную файловую систему Apache Hadoop (HDFS) и управление ресурсами Apache Hadoop YARN, а также простую модель программирования MapReduce для параллельной обработки и анализа пакетных данных. Кластеры Hadoop в HDInsight совместимы с Azure Data Lake Storage 2-го поколения.

Просмотреть доступные компоненты стека технологии Hadoop в HDInsight можно в статье Что представляют собой компоненты и версии Hadoop, доступные в HDInsight? Дополнительные сведения о Hadoop в HDInsight см. на странице возможностей HDInsight в Azure.

Что такое MapReduce

Apache Hadoop MapReduce — это программная платформа для создания заданий, обрабатывающих большие объемы данных. Входные данные разбиваются на независимые блоки, Каждый блок обрабатывается параллельно на узлах вашего кластера. Задание MapReduce состоит из двух функций.

  • Mapper — принимает входные данные, анализирует их (обычно с помощью фильтрации и сортировки) и передает кортежи (пары «ключ-значение»).

  • Reducer(Редуктор) — принимает кортежи, создаваемые сопоставителем, и выполняет сводную операцию, которая создает меньший объединённый результат из данных сопоставителя.

На следующей диаграмме показан пример задания MapReduce, которое выполняет простую операцию подсчета слов:

HDI. WordCountDiagram.

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

  • Маппер принимает каждую строку из входного текста и разбивает её на слова. Это генерирует пару «ключ-значение» каждый раз, когда встречается слово, после которого следует 1. Перед отправкой на обработку редуктором выходные данные сортируются.
  • Затем редуктор суммирует эти отдельные счетчики для каждого слова и выдает одну пару «ключ-значение», содержащую слово, за которым следует частота его использования.

Реализация MapReduce может быть выполнена на различных языках. Java — это наиболее распространенная реализация, которая используется в данном документе для примера.

Языки разработки

Языки или платформы на основе Java или виртуальной машины Java можно запускать непосредственно как задание MapReduce. В качестве примера в этом документе приведено приложение MapReduce на языке Java. Неджавовские языки, такие как C# и Python, или автономные исполняемые файлы должны использовать Hadoop streaming.

Потоковая передача Hadoop взаимодействует с модулями сопоставления и редукции через потоки STDIN и STDOUT. Модули сопоставления и редукции построчно считывают данные из потока STDIN и записывают выходные данные в поток STDOUT. Каждая строка, которая читается или генерируется модулем сопоставления или редукции, должна быть в формате пар "ключ-значение", разделенных знаком табуляции.

[key]\t[value]

Дополнительные сведения см. в разделе Hadoop Streaming.

Примеры использования потоковой передачи Hadoop с HDInsight см. в следующих документах:

С чего начать

Следующие шаги