Обзор ВИЧ

Обзор ВИЧ

#Hadoop


С самого начала обычного прорыва в Интернете многие компании-поставщики поисковых систем и компании / организации, занимающиеся электронной торговлей, боролись с регулярным ростом объема данных день ото дня. Даже некоторые сайты социальных сетей, такие как Facebook, Twitter, Instagram и т. Д., Также сталкиваются с такой же проблемой. Сегодня многие ассоциации понимают, что информация, которую они собирают, является прибыльным ресурсом для понимания их клиентов, влияния их деятельности на рынке, их эффективности и эффективности их инфраструктуры и т. Д. Так что именно здесь Hadoop появился в качестве хранителя, который обеспечивает Мы имеем эффективный способ обработки огромных наборов данных с использованием HDFS (распределенной файловой системы Hadoop) и навязываем MapReduce для разделения погрешностей вычислений на единицы, которые можно распределить по кластеру аппаратных средств (стандартное оборудование), обеспечивая масштабируемость (горизонтальная).

Необходимо решить некоторые большие проблемы, такие как: Как кто-то переместит существующую структуру данных в Hadoop, если эта структура зависит от системы реляционных баз данных и языка структурированных запросов (SQL)? А как насчет безопасности данных, когда и основные создатели баз данных, и администраторы, и некоторые обычные пользователи, которые используют SQL для получения информации из своего хранилища данных?

Это где роль HIVE входит в картину. Hive предоставляет диалект SQL, известный как язык запросов Hive, сокращенно HQL, для извлечения или изменения данных. который хранится в Hadoop. Apache Hive — это система хранилища данных с открытым исходным кодом, созданная на основе кластера Hadoop, для запроса и анализа больших наборов данных, хранящихся в распределенной файловой системе Hadoop. HiveQL автоматически преобразует SQL-подобные запросы в задания MapReduce.


История ВИЧЕ —

HIVE разработан командой инфраструктуры данных Facebook. В Facebook кластер Hadoop Hive способен хранить более 2 петабайт необработанных данных, и ежедневно он обрабатывает и загружает около 15 терабайт данных. Сейчас его используют и многие компании. Позже, Apache Foundation принял Hive, развил его и сделал открытым исходным кодом. Он также используется и разрабатывается другими компаниями, такими как Netflix, Регулирующий орган финансовой индустрии (FINRA) и т. Д.

Характеристики —

Hive — это декларативный язык на основе SQL, в основном используемый для анализа данных и создания отчетов. Hive работает на стороне сервера кластера.

Hive обеспечивает гибкость и эволюцию схемы, а также упрощает сбор данных, запросы данных и анализ.

В Hive мы можем создавать два типа таблиц — секционированные и с разбивкой, что делает возможным обработку данных, хранящихся в HDFS, а также повышает производительность.

Таблицы кустов определяются непосредственно в файловой системе Hadoop (HDFS).

В Hive у нас есть драйверы JDBC / ODBC

Улей быстрый и масштабируемый, и его легко освоить.

В Hive есть оптимизатор на основе правил для оптимизации планов.

Используя Hive, мы также можем выполнять специальные запросы для анализа данных.

Архитектура HIVE —

  • METASTORE — используется для хранения метаданных схемы таблиц, времени создания, местоположения и т. Д. Он также обеспечивает раздел метаданных, чтобы помочь драйверу отслеживать ход выполнения различных наборов данных, распределенных по кластеру. Метаданные помогают водителю отслеживать данные, и это очень важно. Следовательно, сервер резервного копирования регулярно реплицирует данные, которые могут быть получены в случае потери данных.
  • ВОДИТЕЛЬ — Он действует как контроллер. Драйвер запускает выполнение оператора путем создания сеансов и отслеживает жизненный цикл и ход выполнения. Он также хранит метаданные, сгенерированные во время выполнения HQL-запроса.
  • COMPILER — используется для компиляции запроса Hive, который преобразует запрос в план выполнения. Этот план содержит задачи и шаги, которые необходимо выполнить Hadoop MapReduce, чтобы получить выходные данные, переведенные запросом.
  • ОПТИМИЗАТОР — оптимизирует и выполняет преобразования в плане выполнения, чтобы получить оптимизированный ориентированный ациклический граф, сокращенно обозначенный как DAG. Преобразование, такое как преобразование конвейера объединений в одно объединение, и разделение задач, например применение преобразования данных перед операцией сокращения, для обеспечения лучшей производительности и масштабируемости.
  • EXECUTOR — выполняет задачи после компиляции и оптимизации. Он взаимодействует с системой отслеживания заданий Hadoop для планирования запуска задач. Он заботится о конвейерной обработке задач, обеспечивая выполнение задачи с зависимостью только в том случае, если выполняются все другие предварительные условия.

CLI, UI и Thrift Server. Он используется для предоставления внешнего интерфейса пользователю для взаимодействия с Hive путем написания запросов, инструкций и мониторинга процесса. Thrift-сервер позволяет внешним клиентам взаимодействовать с Hive по сети, аналогично протоколу JDBC или ODBC.

Работает —

  1. Прежде всего, пользователь отправляет свой запрос, а CLI отправляет этот запрос драйверу.
  2. Затем драйвер пользуется помощью компилятора запросов для проверки синтаксиса.
  3. Затем компилятор запрашивает метаданные, отправляя запрос метаданных в Metastore.
  4. В ответ на этот запрос metastore отправляет метаданные компилятору.
  5. Затем компилятор отправляет план водителю после проверки требований.
  6. Водитель отправляет план в механизм исполнения.
  7. Механизм выполнения отправляет задание на отслеживание заданий и назначает задание на отслеживание заданий. Здесь запрос выполняет задание MapReduce. А тем временем механизм исполнения выполняет операции с метаданными с Metastore.
  8. Затем механизм выполнения выбирает результаты из узла данных и отправляет эти результаты драйверу.
  9. Наконец, драйвер отправляет результаты в интерфейс улья.

HIVE Metastore —

Hive Metastore — это центральное хранилище метаданных. Он хранит метаданные для таблиц Hive (например, их схемы и местоположения) и разделов в реляционной базе данных. Он предоставляет клиенту доступ к этой информации с помощью API службы метастазов.

Режимы работы :

  • Встроенный. В Hive по умолчанию служба метастазов и службы кустов работают в одной JVM. В этом режиме данные в локальной файловой системе хранятся с использованием встроенной базы данных derby.
  • Local: Hive — это основанная на SQL инфраструктура, которая должна иметь несколько сеансов. В локальном режиме допускается несколько сеансов Hive. Это может быть достигнуто с помощью любого приложения JDBC, такого как MySQL, которое работает в отдельной JVM.
  • Удаленный: в этом режиме службы метастазов и кустов работают в отдельной JVM. API-интерфейсы Thrift используются различными процессами для связи между ними.
  • API-интерфейсы HIVE
  • API-интерфейсы Hive доступны для разработчиков, которые хотят интегрировать свои приложения и среду с экосистемой Hive. Вот некоторые из API-
  1. HCatalog CLI (Command Based) — это API на основе запросов, который означает, что он разрешает только выполнение и передачу HQL.
  2. Metastore (JAVA) — это основанный на Thrift API, который реализуется интерфейсом IMetaStoreClient с использованием JAVA. Этот API-интерфейс отделяет хранилище метастазов от Hive Internals.
  3. Поток потоковых данных (JAVA) — используется для записи непрерывных потоковых данных в транзакционные таблицы с использованием свойств ACID Hive.
  4. Потоковая мутация (JAVA) — используется в операциях преобразования, таких как обновление, вставка, удаление, чтобы преобразовать ее в транзакционные таблицы, а также с помощью свойства ACID.
  5. Hive-JDBC (JDBC) — используется для поддержки функциональности JDBC в Hive.

Ограничения —

Apache Hive также имеет некоторые ограничения:

  1. Представления только для чтения разрешены, но материализованные представления не допускаются.
  2. Он не поддерживает триггеры.
  3. Запросы Apache Hive имеют очень высокую задержку.
  4. Нет разницы между NULL и нулевыми значениями.

Чем ВИЧ отличается от СУРБД?

  1. СУБД поддерживает схему при записи, тогда как Hive предоставляет схему при чтении.
  2. В Hive мы можем писать один раз, но в RDBMS мы можем писать столько раз, сколько захотим.
  3. Hive может обрабатывать большие наборы данных, тогда как RDBMS не может обрабатывать более 10 ТБ.
  4. Hive отлично масштабируется, но масштабируемость в СУБД стоит потерь.
  5. У Hive есть функция Bucketing, которой нет в RDBMS.


Report Page