📜  阿帕奇Hive

📅  最后修改于: 2021-10-27 06:27:49             🧑  作者: Mango

先决条件 – Hadoop、计算平台和技术简介
Apache Hive是一个数据仓库和 ETL 工具,它在用户和集成了 Hadoop 的 Hadoop 分布式文件系统 (HDFS) 之间提供类似 SQL 的接口。它建立在 Hadoop 之上。它是一个提供数据查询和分析的软件项目。它有助于读取、写入和处理存储在分布式存储中并通过结构查询语言 (SQL) 语法查询的广泛数据集。它不是为在线事务处理 (OLTP) 工作负载而构建的。它经常用于数据仓库任务,如数据封装、即席查询和大型数据集的分析。它旨在增强可扩展性、可扩展性、性能、容错性和与其输入格式的松耦合。

Hive最初由 Facebook 和亚马逊、Netflix 开发,它提供用于分析的标准 SQL 功能。传统的 SQL 查询是用 MapReduce Java API 编写的,用于对分布式数据执行 SQL 应用程序和 SQL 查询。 Hive提供了可移植性,因为大多数数据仓库应用程序使用基于 SQL 的查询语言(如 NoSQL)运行。

Hive 的组成部分:

  1. HC目录 –
    它是一个Hive组件,是一个表,也是 Hadoop 的存储管理层。它为用户提供了各种数据处理工具,如 Pig 和 MapReduce,可以轻松地在网格上进行读写。
  2. WebHCat –
    它提供了一种服务,用户可以使用该服务来运行 Hadoop MapReduce(或 YARN)、Pig、 Hive任务或具有 HTTP 接口的函数Hive元数据操作。

Hive 的模式:

  1. 本地模式 –
    当Hadoop建立在只有一个数据节点的伪模式下时,当数据规模较小时,仅限于单个本地机器,以及在本地机器上存在的较小数据集上处理速度更快时使用。
  2. 地图缩小模式 –
    它是用来当Hadoop是建有多个数据节点和数据分布在各个节点划分,它会函数的巨大的数据集,是并行地执行查询,并实现在处理大型数据集增强的性能。

Hive的特点:

  1. 在加载数据之前构建数据库和表。
  2. 作为数据仓库的Hive仅用于管理和查询位于表下的结构化数据。
  3. 在处理结构化数据时,MapReduce 缺乏UDF 等优化和可用性函数,而Hive框架具有优化和可用性功能。
  4. Hadoop 中的编程直接处理文件。因此, Hive可以使用目录结构对数据进行分区,以提高某些查询的性能。
  5. Hive兼容各种文件格式,包括 TEXTFILE、SEQUENCEFILE、ORC、RCFILE 等。
  6. Hive在单用户元数据存储中使用 derby 数据库,它为多用户元数据或共享元数据使用 MYSQL。

Hive的特点:

  1. 它提供索引,包括位图索引以加速查询。从 0.10 开始包含压缩和位图索引的索引类型。
  2. RDBMS 中的元数据存储减少了查询执行期间函数语义检查的时间。
  3. 内置用户定义函数 (UDF) 来操作字符串、日期和其他数据挖掘工具。 Hive得到了增强,以扩展 UDF 集以处理未由预定义函数增强的用例。
  4. DEFLATE、BWT、snappy 等是对存储在 Hadoop 生态系统中的压缩数据进行操作的算法。
  5. 它将模式存储在数据库中,并将数据处理到 Hadoop 文件分布式文件系统 (HDFS) 中。
  6. 它是为在线分析处理 (OLAP) 而构建的。
  7. 它提供了各种类型的查询语言,通常称为Hive查询语言(HVL 或 HiveQL)。