Какой вычислительный движок использует hive
Перейти к содержимому

Какой вычислительный движок использует hive

  • автор:

Какой вычислительный движок использует Hive?

. Hive и другими похожими системами. Так что, когда объёмы данных слишком . Apache Spark — это вычислительный инструмент, работающий со скоростью света.

На каком языке программирования написан Hadoop?

JavaHadoop / Язык программирования

Чем отличается управление ресурсов в Hive и Impala?

Hive – это программное обеспечение хранилища данных. Используя это, мы можем получить доступ и управлять большими распределенными наборами данных, построенными на Hadoop. Impala – это инструмент для управления, анализа данных, которые хранятся в Hadoop. Модель данных HBase представляет собой широкий столбец хранилища.

Как работает Hive?

Hive реализует отдельный компилятор задач для каждой поддерживаемой среды выполнения обработки (Tez, Spark и MapReduce). После создания задач, драйвер отправляет их диспетчеру приложений среды для выполнения в YARN, который обрабатывает выполнение.

Какой SQL в Hadoop?

В Apache Hive и Cloudera Impala запросы к данным, хранящимся в Hadoop, реализуются на SQL-подобном декларативном языке Hive Query Language (HiveQL), который является подмножеством SQL92.

Почему SQL лучше?

Базы данных SQL надежны. Они предназначены для обработки больших объемов данных и транзакций без потери или повреждения базы данных. Если в них используется распределенная база данных, это может обеспечить безопасность. В распределенной базе данных подобные базы данных находятся в разных местах.

Что такое Hive Flutter?

Примерно месяц назад общаясь с одним разработчиком приложения на Flutter встала проблема торможения обработки маленьких (в десятках тысяч) массивов данных на телефоне юзера. Многие приложения предполагают обработку данных на телефоне и, далее, их синхронизацию с бэкендом.

Чем Spark лучше Hadoop?

Spark – более передовая технология, чем Hadoop, поскольку при обработке данных она использует искусственный интеллект и машинное обучение (ИИ/МО). Однако для достижения своих целей в области аналитики данных многие компании используют Spark и Hadoop вместе.

Apache HIVE — особенности и ограничения

Apache hive — это инструмент хранения данных, созданный на основе Hadoop и используемый для извлечения значимой информации из данных. Хранилище данных — это хранение всех видов данных, созданных из разных источников, в одном месте. Данные в основном доступны в трех формах: структурированной (база данных SQL), полуструктурированной (XML или JSON) и неструктурированной (музыка или видео). Для обработки структурированных данных, доступных в табличном формате, мы используем Hive поверх Hadoop. Улей настолько мощный, что может очень эффективно запрашивать петабайты (ПБ) данных.

Как мы знаем, MapReduce — это модель по умолчанию, которую мы используем для программирования в Hadoop с использованием java или другого языка, поэтому Hive в основном был разработан для разработчиков, которые привыкли к SQL. После рождения Hive люди, которые не очень хорошо знакомы с Java, также могут обрабатывать данные через Hadoop с помощью Hive. Использование Hive также упрощает запрос данных структуры, поскольку написание кода на java затруднено по сравнению с Hive. HQL или HIVEQL — это язык запросов, который мы используем для работы с ульем, синтаксис которого очень похож на язык SQL, что упрощает использование Hive.

ive on Mapreduce

Вы можете обратиться к этой статье для принципа УлейТехнология Hive в эпоху больших данных: введение в HiveНекоторые реальные операции могут прочитать этоПримечания: Руководство по кустам для начинающихЧто касается вас по-прежнему интересует метод оптимизации Hive, см. Эту статью я суммировалНекоторые выводы по оптимизации производительности Hive

Улей на Mapreduce процесс выполнения

Детальный анализ процесса исполнения

  • Шаг 1: пользовательский интерфейс (пользовательский интерфейс) вызывает интерфейс executeQuery и отправляет оператор запроса HQL в драйвер
  • Шаг 2. Драйвер создает дескриптор сеанса для оператора запроса и отправляет оператор запроса в компилятор, ожидая, пока он проанализирует инструкцию и сгенерирует план выполнения
  • Шаг 3 и 4: Компилятор получает соответствующие метаданные из метастаза
  • Шаг 5. Метаданные используются для проверки типов выражений в дереве запросов, настройки разделов на основе предикатов запросов и создания планов.
  • Шаг 6 (6.1, 6.2, 6.3): План выполнения, сгенерированный компилятором, является поэтапной группой обеспечения доступности баз данных. Каждый этап может включать в себя задание Map / Reduce, операции с метаданными и операции с файлами HDFS. Механизм выполнения будет Группа доступности базы данных передается в соответствующий компонент для выполнения.
  • Шаг 7, 8 и 9: В каждой задаче (картограф / редуктор) результат запроса будет сохранен в HDFS как временный файл. Временный файл, в котором сохраняется результат запроса, непосредственно считывается из HDFS модулем выполнения как содержимое, возвращаемое из API Driver Fetch.

Улей на функции Mapreduce

  1. В реляционных базах данных режим загрузки таблицы принудительно определяется при загрузке данных (режим загрузки таблицы относится к формату файла данных, хранящихся в базе данных) .Если загруженные данные не соответствуют режиму при загрузке данных, реляционная база данных откажется загружать данные , Это называется «режимом записи», и режим записи проверяет режим данных при загрузке данных. Hive отличается от реляционных баз данных при загрузке данных. Hive не проверяет данные при загрузке данных и не изменяет загруженный файл данных. Операция проверки формата данных выполняется во время операции запроса. Этот режим называется " Режим чтения ". В практических приложениях режим времени записи индексирует столбцы и сжимает данные при загрузке данных, поэтому скорость загрузки данных очень низкая, но при загрузке данных, когда мы обращаемся к данным, скорость очень высокая. Но когда наши данные не структурированы, а режим хранения неизвестен, сценарий операций с реляционными данными становится гораздо более сложным, и в настоящее время улей в полной мере использует его преимущества.
  2. Важной особенностью реляционных баз данных является то, что они могут обновлять или удалять данные в строке или определенных строках. Hive ** не поддерживает операции с определенной строкой. Операции Hive с данными поддерживают только перезапись исходных данных и добавление данных * *. Hive также не поддерживает транзакции и индексы. Обновления, транзакции и индексы являются функциями реляционных баз данных. Эти ульи не поддерживают и не собираются их поддерживать. Причина в том, что куст предназначен для обработки огромных объемов данных. Сканирование всех данных является нормальным, а эффективность операций с определенными конкретными данными Это очень плохо. Для операции обновления Hive преобразует данные исходной таблицы с помощью запроса и, наконец, сохраняет их в новой таблице, что сильно отличается от операции обновления традиционной базы данных.
  3. Hive также может внести вклад в запрос в реальном времени в hadoop, который интегрирован с hbase, hbase может выполнять быстрый запрос, но hbase не поддерживает SQL-подобные операторы, тогда hive может предоставить hbase оболочку для анализа синтаксиса sql , Вы можете использовать SQL-подобные операторы для работы с базой данных hbase.
  4. Улей можно рассматривать как упаковку и упаковку MapReduce. Смысл Hive состоит в том, чтобы преобразовать язык Sql, который пользователи легко пишут и могут писать в сложные и трудные для написания программы MapReduce в бизнес-анализе, тем самым значительно снижая порог обучения Hadoop, что позволяет большему количеству пользователей использовать Hadoop для анализа интеллектуального анализа данных.
Элемент сравнения SQL HiveQL
ANSI SQL ожидание Не полностью поддерживается
Обновить UPDATE\INSERT\DELETE insert OVERWRITE\INTO TABLE
дела ожидание не поддерживается
Режим Режим записи Режим чтения
Сохранение данных Блочное устройство, локальная файловая система HDFS
задержка низкий высокая
Многостоловая вставка не поддерживается ожидание
Subquery полностью поддерживаю Может использоваться только в предложении From
Посмотреть Updatable Read-only
Масштабируемость низкий высокая
Размер данных маленький большой
…. …… ……

SparkSQL

Введение в SparkSQL

Предшественником SparkSQL является Shark, который предоставляет быстрый инструмент для техников, которые знакомы с RDBMS, но не понимают MapReduce.hiveВозникла, была единственнойHadoopSQL-on-onhadoopинструмент. Однако в процессе вычисления MapReduce большое количество промежуточных процессов посадки на диск потребляют много ресурсов ввода-вывода и снижают операционную эффективность. Чтобы повысить эффективность SQL-on-Hadoop, возникла Shark, но поскольку Shark слишком полагается на Hive ( Например, использование синтаксического анализатора Hive, оптимизатора запросов и т. Д.), В 2014 году группа разработчиков spark прекратила разработку Shark и вложила все ресурсы в проект SparkSQL.

Среди них SparkSQL продолжает развиваться как участник экосистемы Spark и более не ограничивается Hive, но совместим с Hive; Hive on Spark — это план разработки Hive, в котором Spark используется в качестве одного из базовых движков Hive, что означает , Hive больше не будет ограничиваться одним движком, он может использовать Map-Reduce, Tez, Spark и другие движки.

Два компонента SparkSQL

  1. SQLContext: Spark SQL предоставляет SQLContext для инкапсуляции всех реляционных функций в Spark. Вы можете создать SQLContext с существующим SparkContext в предыдущем примере.
  2. DataFrame: DataFrame — это распределенный сбор данных, организованный в форме именованных столбцов. DataFrame основан на концепции фрейма данных на языке R, который похож на таблицы базы данных в реляционных базах данных. Вызывая метод rdd, который возвращает содержимое DataFrame в виде строки RDD (RDD of Rows), DataFrame можно преобразовать в RDD. DataFrame может быть создан из следующих источников данных: существующие RDD, файлы структурированных данных, наборы данных JSON, таблицы Hive и внешние базы данных.

Операционная архитектура SparkSQL

Подобно реляционным базам данных, SparkSQL также является оператором, состоящим из Projection (a1, a2, a3), Data Source (tableA), Filter (условие), соответствующих Result, Data Source и Operation в процессе SQL-запроса, то есть SQL Операторы описаны в следующем порядке: «Операция»> «Источник данных»> «Результат».

При выполнении последовательности операторов SparkSQL

  1. Выполните синтаксический анализ оператора чтения SQL (Parse), определите, какие слова в операторе SQL являются ключевыми словами (такими как SELECT, FROM, WHERE), которые являются выражениями, которые являются проекциями, источниками данных и т. Д., Для определения оператора SQL Является ли это стандартным;
    • Проекция: Проще говоря, это набор столбцов, выбранных с помощью выбора, ссылка:SQL Projection
  2. Привязать оператор SQL к словарю данных (столбец, таблица, представление и т. Д.) Базы данных.Если существуют связанные проекция, источник данных и т. Д., Это означает, что оператор SQL может быть выполнен;
  3. Общая база данных будет содержать несколько планов выполнения, эти планы обычно имеют операционную статистику, база данных выберет оптимальный план (Оптимизировать) среди этих планов;
  4. Выполнение плана (Выполнение) выполняется в порядке Операция–> Источник данных–> Результат. Иногда результаты могут быть возвращены без чтения физической таблицы во время процесса выполнения, например, повторного запуска только что выполненного оператора SQL, который может быть непосредственно Получить возвращенный результат из пула буферов базы данных.

Hive on Spark

​ hiveOn Spark — это проект с открытым исходным кодом, инициированный Cloudera и совместно используемый такими компаниями, как Intel и MapR, целью которого является использование Spark в качестве вычислительного механизма Hive и отправка запросов Hive в качестве задач Spark в кластер Spark для расчета. Благодаря этому проекту производительность запроса Hive может быть улучшена, и в то же время он предоставляет более гибкие возможности для пользователей, которые развернули Hive или Spark, тем самым еще больше увеличивая популярность Hive и Spark.

Разница между Hive на Spark и SparkSql

Структура улья на искре похожа на SparkSQL, за исключением того, что движок SQL отличается, но вычислительный движок — искра! Стук в доску! Это точка!

Давайте взглянем на опыт использования Hive on Spark в pyspark.

Мы видим, что и sqlcontext, и hivecontext происходят из пакета pyspark.sql. Если вы можете понять из этого, между hive on spark и sparksql нет большой разницы.

Конструктивно Hive On Spark и SparkSQL — это уровень перевода, который переводит SQL в распределенную исполняемую программу Spark. И двигатель каждого искра

SparkSQL и Hive On Spark являются решениями для реализации SQL в Spark. У Spark ранее был проект Shark для реализации уровня SQL, но позже он был свергнут и переработан и стал SparkSQL. Это официальный проект Spark Databricks, реализация SQL самого проекта Spark. Hive On Spark немного позже, чем SparkSQL. Изначально Hive не поддерживал другие движки, кроме MapReduce, а проект Hive On Tez позволил Hive поддерживать структуру планирования, аналогичную Spark (не MapReduce DAG). Поэтому на этом основании Cloudera возглавила запуск Hive On Spark. Этот проект поддерживается IBM, Intel и MapR (но не Databricks). -ИзСравнение SparkSQL и Hive на Spark

Hive в сценариях использования Mapreduce и SparkSQL

Улей на сцене Mapreduce

  • Появление Hive позволяет тем, кто владеет навыками SQL, но не знаком с MapReduce, имеет слабые навыки программирования и не умеетJavaПользователи языка могут легко использовать язык SQL для запроса, агрегирования и анализа данных в крупномасштабных наборах данных HDFS. В конце концов, гораздо больше людей владеют SQL, чем Java.
  • Улей подходит для обработки офлайн данных не в реальном времени

Сценарий SparkSQL

  • Spark может работать в локальном, автономном, кластерном и других режимах на Yarn, Mesos или в облаке, например, EC2. Кроме того, Spark имеет широкий спектр источников данных и может обрабатывать различные типы данных из HDFS, HBase, Hive, Cassandra и Tachyon.
  • Места с требованиями в реальном времени или высокой скоростью

Сравнение производительности между Hive на Mapreduce и SparkSQL

Вывод: sparksql и hive on spark примерно одинаковы, но оба они намного быстрее, чем hive на mapreduce. Официальные данные полагают, что spark будет в 10-100 раз быстрее при традиционном mapreduce.

Apache Hive

Muhammad Zaman

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL (Standard Query Language).

Where does Hive Fall in the Stack?

From the figure below, we can see that Hive is more of an abstraction layer lying on top of YARN Map-Reduce 2. Moreover, note that Hive and Pig lie in same horizontal stack.

Architecture

As we see that Hive is an abstraction on top of Hadoop Map-Reduce jobs. So the underlying structure is same i.e. Hive run on top of Hadoop.
So, Hive mainly consists of two components i.e. Hive and Hadoop.

Hadoop Components

Hadoop Key components are Yarn and HDFS. Yarn is the resource manager, whereas HDFS is the distributed file system of Hadoop.

The picture is showing how data is distributed in different nodes.

Hive Components

  • External Interfaces- CLI, WebUI, JDBC, ODBC programming interfaces
  • Thrift Server — Cross Language service framework .
  • Metastore — Meta data about the Hive tables, partitions
  • Driver — Brain of Hive! Compiler, Optimizer and Execution engine

Hive Importance

Data Analysts with Hadoop (Uncomfortable)

Mostly Data analysts feel uncomfortable while working on Hadoop due to the coding nature of Hadooop (Since for each analysis you have to write customize map-reduce jobs).

Limitations of Hadoop

The biggest limitation of Hadoop is that one have to use M/R model (Map-Reduce Model). Other limitations are as stated below:
* Not Reusable
* Error prone
* Multiple stage of Map/Reduce functions for complex jobs.
*It’s just like asking a developer to write physical execution plan in the DB.

Hive Data Model

  • Tables
  • Partitions
  • Buckets

Tables

Analogous to relational tables. Each table has a corresponding directory in HDFS. Data serialized and stored as files within that directory.

Partitions

Each table can be broken into partitions. Partitions determine distribution of data within subdirectories.
Example

So each partition will split out into different folders like:

Buckets

Data in each partition divided into buckets based on a hash function of the column. Each bucket is stored as a file in partition directory.
Example:
H(column) mod NumBuckets = bucket number

H(column) mod NumBuckets = bucket number

Comparison between Hive and Pig since they both fall in same horizontal block of the stack.

Similarities

Both High level Languages which work on top of map-reduce framework. Since, both use the underlying HDFS and map-reduce they both can coexist.

Differences

  1. Language
    Pig — is a procedural ; (A = load ‘mydata’; dump A)
    Hive — is Declarative (select * from A)
  2. Work Type
    Pig — more suited for ad hoc analysis (on demand analysis of click stream search logs)
    Hive — a reporting tool (e.g. weekly BI reporting)
  3. Users
    Pig — Researchers, Programmers (build complex data pipelines, machine learning)
    Hive — Business Analysts
  4. Integration
    Pig — Doesn’t have a thrift server(i.e no/limited cross language support)
    Hive — Thrift Server
  5. User’s Need
    Pig — Better development environments, debuggers expected
    Hive — Better integration with technologies expected(e.g JDBC, ODBC)

Hive Pros, Cons and Improvements

  • Boon for Data Analysts
  • Easy Learning curve
  • Completely transparent to underlying Map-Reduce
  • Partitions(speed!)
  • Flexibility to load data from localFS/HDFS into Hive Tables
  • Extending the SQL queries support(Updates, Deletes)
  • Better debug support in shell

Where Hive is useful?
Wherever Batch-processing is involved like: Log processing, Text-Mining, Document-indexing, Customer Facing BI,and Predictive Modeling.

Where ain’t useful?
Wherever Online processing involved like: OLTP and Real-time Queries.

Thank you for reading the introductory blog for Apache Hive. Now if you want to try it out. Let’s start with configuring Hadoop first.
Continue to Series Part 2 of 3.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *