Глубокое понимание
Hadoop
Hadoop
это проект Apache
фонда с открытым исходным кодом . Это фреймворк Java
, изначально написанный Дугом Каттингом в 2005 году. Он был создан для поддержки Nutch
механизма текстового поиска. Hadoop
использует Google Map Reduce
и Google File System Technologies в качестве своей основы.
Особенности Hadoop
- Он оптимизирован для обработки огромного количества структурированных, полуструктурированных и неструктурированных данных с использованием стандартного аппаратного обеспечения.
- Он не имеет ничего общего с архитектурой.
- Он реплицирует свои данные на несколько компьютеров, так что если один из них выйдет из строя, данные все равно могут быть обработаны с другого компьютера, на котором хранится его реплика.
Hadoop
для высокой пропускной способности, а не низкой задержки. Это пакетная операция, обрабатывающая огромное количество данных; поэтому время отклика не является немедленным.
- Он дополняет онлайн-обработку транзакций и онлайн-аналитическую обработку. Тем не менее, это не замена для
RDBMS
.
- Это не хорошо, когда работа не может быть распараллелена или когда в данных есть зависимости.
- Это не хорошо для обработки небольших файлов. Лучше всего работает с огромными файлами данных и наборами данных.
Версии Hadoop
Доступны две версии Hadoop
:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Он состоит из двух основных частей:
1. Структура хранения данных
Это файловая система общего назначения, называемая Hadoop Distributed File System ( HDFS
).
HDFS
без схемы
Он просто хранит файлы данных, и эти файлы данных могут быть в любом формате.
Идея состоит в том, чтобы хранить файлы как можно ближе к их первоначальному виду.
Это, в свою очередь, предоставляет бизнес-единицам и организации столь необходимую гибкость и гибкость, не беспокоясь о том, что она может реализовать.
2. Структура обработки данных
Это простая функциональная модель программирования, изначально популяризированная Google как MapReduce
.
По сути, он использует две функции: MAP
и REDUCE
для обработки данных.
«Mappers» принимает набор пар ключ-значение и генерирует промежуточные данные (это еще один список пар ключ-значение).
Затем «редукторы» воздействуют на этот вход для получения выходных данных.
Эти две функции, по-видимому, работают изолированно друг от друга, что позволяет распределять обработку с высокой степенью параллелизма, отказоустойчивости и масштабируемости.
Ограничения Hadoop 1.0
Первым ограничением было требование MapReduce
опыта программирования.
Он поддерживал только пакетную обработку, которая, хотя и подходит для таких задач, как анализ журналов, крупномасштабные проекты добычи данных, но в значительной степени не подходит для других видов проектов.
Одним из основных ограничений было то, что оно Hadoop 1.0
было тесно связано в вычислительном отношении MapReduce
, что означало, что признанные поставщики управления данными остались с двумя мнениями:
Либо переписать их функциональность MapReduce
так, чтобы он мог быть выполнен в Hadoop
или
Извлекать данные из HDFS
или обрабатывать их снаружи Hadoop
.
Ни один из вариантов не был жизнеспособным, поскольку это привело к неэффективности процесса, вызванному перемещением данных в Hadoop
кластер и из него .
Hadoop 2.0
В Hadoop 2.0
, HDFS
продолжает оставаться каркас хранения данных.
Тем не менее, новый и индивидуальный структура управления ресурсами называется Y и др ругой R esource N egotiater ( ПРЯЖИ ) был добавлен.
Любое приложение, способное делиться на параллельные задачи, поддерживается YARN.
YARN координирует распределение подзадач поданного приложения, тем самым дополнительно повышая гибкость, масштабируемость и эффективность приложений.
Это работает, имея Application Master вместо Job Tracker , запуская приложения на ресурсах, управляемых новым Node Manager .
ApplicationMaster может запускать любое приложение, а не только MapReduce
.
Это означает, что он поддерживает не только пакетную обработку, но и обработку в реальном времени. MapReduce
больше не единственный вариант обработки данных.
Преимущества Hadoop
Он хранит данные в своем родном из. При вводе данных или хранении данных не существует никакой структуры. HDFS
схема меньше. Только позже, когда данные должны быть обработаны, структура накладывается на необработанные данные.
Это масштабируемо. Hadoop
может хранить и распределять очень большие наборы данных по сотням недорогих серверов, работающих параллельно.
Это устойчиво к провалу. Hadoop
отказоустойчивость Он усердно практикует репликацию данных, что означает, что всякий раз, когда данные отправляются на какой-либо узел, эти же данные также реплицируются на другие узлы в кластере, что гарантирует, что в случае сбоя узла всегда будет другая копия данных, доступная для использования.
Это гибкий. Одним из ключевых преимуществ Hadoop
является то, что он может работать с любыми данными: структурированными, неструктурированными или полуструктурированными. Кроме того, обработка выполняется очень быстро Hadoop
благодаря парадигме «переместить код в данные».
Экосистема Hadoop
Ниже приведены компоненты Hadoop
экосистемы:
HDFS : Hadoop
распределенная файловая система. Он просто хранит файлы данных как можно ближе к исходной форме.
HBase : Это база данных Hadoop, которая хорошо сравнивается с RDBMS
. Он поддерживает структурированное хранилище данных для больших таблиц.
Hive : позволяет анализировать большие наборы данных с использованием языка, очень похожего на стандартный ANSI SQL
, что подразумевает, что любой знакомый SQL
должен иметь доступ к данным в Hadoop
кластере.
Свинья : Это простой для понимания язык потока данных. Это помогает в анализе больших наборов данных, что вполне нормально Hadoop
. Pig
Сценарии автоматически преобразуются переводчиком в MapReduce
задания Pig
.
ZooKeeper : Это сервис координации для распределенных приложений.
Узи : Это система рабочих процессов schedular
для управления Hadoop
заданиями Apache .
Mahout : это масштабируемая библиотека машинного обучения и интеллектуального анализа данных.
Chukwa : Это система сбора данных для управления большой распределенной системой.
Sqoop : используется для передачи больших объемов данных между Hadoop
хранилищами структурированных данных, такими как реляционные базы данных.
Ambari : это веб-инструмент для предоставления, управления и мониторинга Hadoop
кластеров.
улей
Hive
является инструментом инфраструктуры хранилища данных для обработки структурированных данных в Hadoop
. Он находится на вершине, Hadoop
чтобы суммировать большие данные и упрощает запросы и анализ.
Улей не
Реляционная база данных
Дизайн для онлайн-обработки транзакций ( OLTP
).
Язык для запросов в реальном времени и обновлений на уровне строк.
Особенности Улья
Он хранит схему в базе данных и обрабатывает данные в HDFS
.
Он предназначен для OLAP
.
Он предоставляет SQL
язык типов для запросов по имени HiveQL
или HQL
.
Это семейный, быстрый, масштабируемый и расширяемый.
Улей Архитектура
Следующие компоненты содержатся в Hive Architecture:
Пользовательский интерфейс : Hive
это data warehouse
инфраструктура, которая может создавать взаимодействие между пользователем и HDFS
. Поддерживаемые пользовательские интерфейсы Hive
: веб-интерфейс Hive, командная строка Hive и Hive HD Insight (в Windows Server).
MetaStore : Hive
выбирает соответствующие database
servers
для хранения схемы или Metadata
таблиц, баз данных, столбцов в таблице, их типов данных и HDFS
отображений.
HiveQL Process Engine : HiveQL
похоже SQL
на запрос информации о схеме в Metastore
. Это одна из замен традиционного подхода к MapReduce
программе. Вместо того , чтобы писать MapReduce
в Java
, мы можем написать запрос для MapReduce
и обработать его.
Механизм выполнения : Соединительная часть HiveQL
процесса и MapReduce
является Механизмом Hive
выполнения. Механизм выполнения обрабатывает запрос и генерирует результаты так же, как и MapReduce results
. Это использует аромат MapReduce
.
HDFS или HBase : Hadoop
распределенная файловая система или HBase
методы хранения данных для хранения данных в файловой системе.