Apache Hive
Apache Hive is a distributed, fault-tolerant data warehouse system that enables analytics at a massive scale. Hive Metastore(HMS) provides a central repository of metadata that can easily be analyzed to make informed, data driven decisions, and therefore it is a critical component of many data lake architectures. Hive is built on top of Apache Hadoop and supports storage on S3, adls, gs etc though hdfs. Hive allows users to read, write, and manage petabytes of data using SQL.
Key Features
Hive-Server 2 (HS2)
HS2 supports multi-client concurrency and authentication. It is designed to provide better support for open API clients like JDBC and ODBC.
Hive Metastore Server (HMS)
The Hive Metastore (HMS) is a central repository of metadata for Hive tables and partitions in a relational database, and provides clients (including Hive, Impala and Spark) access to this information using the metastore service API. It has become a building block for data lakes that utilize the diverse world of open-source software, such as Apache Spark and Presto. In fact, a whole ecosystem of tools, open-source and otherwise, are built around the Hive Metastore, some of which this diagram illustrates.

Hive ACID
Hive provides full acid support for ORC tables out and insert only support to all other formats.
Hive Data Compaction
Query-based and MR-based data compactions are supported out-of-the-box.
Hive Replication
Hive supports bootstap and incremental replication for backup and recovery.
Security and Observability
Apache Hive supports kerberos auth and integrates with Apache Ranger and Apache Atlas for security and observability.

Hive LLAP
Apache Hive enables interactive and subsecond SQL through Low Latency Analytical Processing (LLAP), introduced in Hive 2.0 that makes Hive faster by using persistent query infrastructure and optimized data caching
Query planner and Cost based Optimizer
Hive uses Apache Calcite’s cost based query optimizer (CBO) and query execution framework to optimize sql queries.
Apache is a non-profit organization helping open-source software projects released under the Apache license and managed with open governance and privacy policy. See upcoming Apache Events. If you discover any security vulnerabilities, please report them privately. Finally, thanks to the sponsors who donate to the Apache Foundation.
Apache Hive
The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.
Getting Started With Apache Hive Software
- Check out the Getting Started Guide.
- Learn more About Hive’s Functionality.
- Read the Getting Started Guide to learn how to install Hive
- The User and Hive SQL documentation shows how to program Hive
Getting Involved With The Apache Hive Community
Apache Hive is an open source project run by volunteers at the Apache Software Foundation. Previously it was a subproject of Apache® Hadoop®, but has now graduated to become a top-level project of its own. We encourage you to learn about the project and contribute your expertise.
- Give us feedback or submit bug reports: What can we do better?
- Join the mailing list and meet our community
- Read through our Contributor’s Guides about where to find the source or submit patches
- Become a Hive Fan on Facebook
- Follow @ApacheHive on Twitter
Copyright © 2011-2014 The Apache Software Foundation Licensed under the Apache License, Version 2.0
Apache Hive, Hive, Apache, the Apache feather logo, and the Apache Hive project logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.
Архитектура СУБД Apache Hive: основы Big Data для начинающих
![]()
В этой статье мы рассмотрим архитектуру системы управления базами данных (СУБД) Apache Hive. Также рассмотрим, какие базовые компоненты входят в состав эотй широко известной SQL-подобной СУБД из экосистемы Hadoop. Читайте далее, что именно делает эту NoSQL-СУБД удобным и мощным средством хранения и обработки больших данных.
Основные компоненты СУБД Apache Hive
Прежде всего отметим, что Hive — это не просто СУБД, а целая платформа экосистемы Hadoop для хранения и обработки больших данных в распределенной среде, которая позволяет проектировать структуры Big Data (таблицы, партиции, бакеты) с помощью SQL-подобного языка, называемого HiveQL (HQL, Hive Query Language). В структуру Hive входят следующие базовые элементы:
· база данных (database);
· таблица (классическая и внешняя).
Структура Apache Hive
Каждый из вышеперечисленных компонентов мы подробнее рассмотрим далее.
База данных
База данных (database) в Hive — это пространство имен, содержащее различные отношения (таблицы). База данных имеет уникальное имя и размер. База данных в Hive представляет собой аналог базы данных в реляционных СУБД (например, Oracle, MySQL, MSSQL Server), где все таблицы (отношения) связаны между собой и ссылаются друг на друга. Для того, чтобы приступить к работе с данными и созданию таблиц, необходимо для начала создать базу данных, которая будет хранить все созданные таблицы с данными. Следующий код на языке SQL отвечает за создание базы данных:
CREATE DATABASE userdb
Для переключения на соответствующую базу данных используется ключевое слово USE:
После переключения на необходимую базу данных все запросы по созданию таблиц будут создавать и сохранять эти таблицы в эту базу данных [1].
Таблица
Таблица — это структура данных, которая хранит данные в базе данных в виде строк и столбцов в структурированном (упорядоченном) виде. Таблица в Hive представляет собой аналог таблицы в реляционной базе данных, где доступ к данным происходит по индексу, который ускоряет работу по поиску данных. Основное отличие hive-таблиц от таблиц реляционных СУБД состоит в том, что после создания они хранятся в виде обычных файлов на файловой системе HDFS (Hadoop Distributed File System). В Hive таблицы делятся на 2 вида:
Классические таблицы — это таблицы, в которые данные добавляются при помощи специального HQL-запроса после создания таблицы. Следующий код на диалекте HQL отвечает за создание классической таблицы:
CREATE TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, destination String)
COMMENT ‘Employee details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE
После выполнения этого запроса в базе данных появится пустая таблица. Для того, чтобы заполнить ее данными, необходимо выполнить специальный HQL-запрос:
LOAD DATA INPATH ‘/user/root/sample.txt’
OVERWRITE INTO TABLE employee;
Внешние таблицы — это таблицы, в которые данные загружаются из внешних источников (csv-файлов, txt-файлов и т.д.) во время создания таблицы. Для создания внешней таблицы используется ключевое слово EXTERNAL. Следующий код на диалекте HQL отвечает за создание внешней таблицы и заполнение ее данными [2]:
CREATE EXTERNAL TABLE IF NOT EXISTS employee_external ( eid int, name String,
salary String, destination String)
COMMENT ‘Employee details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE
Таким образом, структура Apache Hive делает это средство весьма удобной и надежной платформой для хранения и обработки Big Data. Именно поэтому Hive является неотъемлемой частью экосистемы Hadoop, являющейся универсальным решением для организации обработки Big Data.
Больше подробностей про применение Apache Hive в проектах анализа больших данных вы узнаете на практических курсах по Hive в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:
What is Apache Hive?
Apache Hive is a distributed, fault-tolerant data warehouse system that enables analytics at a massive scale. A data warehouse provides a central store of information that can easily be analyzed to make informed, data driven decisions. Hive allows users to read, write, and manage petabytes of data using SQL.
Hive is built on top of Apache Hadoop, which is an open-source framework used to efficiently store and process large datasets. As a result, Hive is closely integrated with Hadoop, and is designed to work quickly on petabytes of data. What makes Hive unique is the ability to query large datasets, leveraging Apache Tez or MapReduce, with a SQL-like interface.
How does Hive work?
Hive was created to allow non-programmers familiar with SQL to work with petabytes of data, using a SQL-like interface called HiveQL. Traditional relational databases are designed for interactive queries on small to medium datasets and do not process huge datasets well. Hive instead uses batch processing so that it works quickly across a very large distributed database. Hive transforms HiveQL queries into MapReduce or Tez jobs that run on Apache Hadoop’s distributed job scheduling framework, Yet Another Resource Negotiator (YARN). It queries data stored in a distributed storage solution, like the Hadoop Distributed File System (HDFS) or Amazon S3. Hive stores its database and table metadata in a metastore, which is a database or file backed store that enables easy data abstraction and discovery.
Hive includes HCatalog, which is a table and storage management layer that reads data from the Hive metastore to facilitate seamless integration between Hive, Apache Pig, and MapReduce. By using the metastore, HCatalog allows Pig and MapReduce to use the same data structures as Hive, so that the metadata doesn’t have to be redefined for each engine. Custom applications or third party integrations can use WebHCat, which is a RESTful API for HCatalog to access and reuse Hive metadata.