Глубокое понимание
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методы хранения данных для хранения данных в файловой системе.