img

База данных Hadoop - увеличь свой хобот

Про хоботистый проект, который изменил многое

Интернет, на текущее время, это непрерывно развивающаяся сеть планетарного масштаба. Ее существование невозможно представить без поисковых программ и социальных сетей. Большинство пользователей интернета, ежедневно заходящих в Facebook или ищущих информацию в Yahoo, даже не задумываются, как работает эта система то есть, контактируют только с пользовательским интерфейсом программы. И мало кто знает, что продукты такого типа работают на основе распределенных программам. Их работа основана на кластерах наборах узлов, которые используются для поиска нужной клиенту информации. И одним из основных наборов инструментов, который используется при разработке такого рода программ, является Hadoop.

Что же это такое? Как говорилось выше, это не отдельная программа, а целый набор инструментов, библиотек и приложений, а также инструмент для удобной работы с ними. Для удобства, назовем весь этот комплекс "фреймворком". Всё это предназначено для разработки и использования распределенных программ. В этой статье мы разберемся, из чего состоит основной инструментарий Hadoop и упомянем о самых распространенных программах из набора.

Комплекс Hadoop

Строго говоря, разработчиком Hadoop является компания Apache Software Foundation. Однако, в силу того, что данный набор программ является свободно распространяемым, ряд сторонних разработчиков (Hortonworks, MapR, Cloudera) создали на основе Apache Hadoopряд своих сборок, которые завоевали у пользователей большую популярность. Это произошло потому, что такие сборки гораздо стабильнее ведут себя в работе и гораздо удобнее в использовании.

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

Пару слов о движках: Развитие проекта привело к тому, что классическая схема MapReduce, с которой проект начинал свою работу, сейчас заменяется на варианты Spark или Tez, поскольку значительно ускоряют работу с данными. Spark более универсальная модель движка, применяемая повсеместно, Tez в свою очередь более узко специализирован.

К наиболее популярным системам управления базами данных в данном решении можно отнести базовый вариант Hive, а также альтернативные варианты, такие как Impala от Cloudera, или Spark SQL. Данные продукты имеют свои достоинства и недостатки, но возможность выбора лучшего решения делает проект в общем и целом достаточно гибким и удобным для пользования.

Свою нишу в данном проекте также имеет отдельная NoSQL-база Hbase. Это важное решение для всей системы Hadoop, поскольку эффективно поддерживает работу с отдельными записями в режиме реального времени.

Для импорта данных на текущий момент, пожалуй, единственным эффективным вариантом остается Kafka от оригинального разработчика Apache. Уникальность данного решения в том, что импорт серьезных объемов данных в данном случае заложен в саму архитектуру проекта. Конечно, Kafka обладает рядом минусов, но работы над обновлением и оптимизацией ведутся постоянно.

Помимо этого набора программ, который можно считать базовым, Hadoop обладает рядом других полезных инструментов. Это и алгоритмы машинного обучения для оптимизации работы всей системы (MLlib, Mahout), и программа-координатор ZooKeeper, обладающая широчайшими возможностями по конфигурированию и управлению, программы для планирования задач в проектах Azkaban и Oozie, а так же многие другие подключаемые модули различного назначения и, соответственно, различной полезности в рамках того или иного проекта.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии проекта. В статье рассказываем, как ее использовать.
img
Мы рассмотрим несколько простых способов, с помощью которых вы можете управлять и отслеживать логи для своих контейнеров.
img
Узнайте, как использовать Git Hooks для автоматизации задач в рабочем процессе: от проверки коммитов до автоматического тестирования, и как настроить хуки для совместной работы в команде.
img
Откройте для себя, как канареечное развертывание может минимизировать риски при обновлении ПО. Узнайте, как постепенно внедрять новые функции и обеспечивать стабильность продукта с помощью этого метода.
img
Откройте для себя GitOps — революционный подход к управлению инфраструктурой через Git. Узнайте, как этот метод упрощает развертывание приложений и повышает надежность с помощью автоматизации и масштабируемости.