返回介绍

Hive 教程

发布于 2025-02-22 13:46:38 字数 3839 浏览 0 评论 0 收藏 0

Hive 是一个数据仓库基础工具在 Hadoop 中用来处理结构化数据。它架构在 Hadoop 之上,总归为大数据,并使得查询和分析方便。并提供简单的 sql 查询功能,可以将 sql 语句转换为 MapReduce 任务进行运行。

术语“大数据”是大型数据集,其中包括体积庞大,高速,以及各种由与日俱增的数据的集合。使用传统的数据管理系统,它是难以加工大型数据。因此,Apache 软件基金会推出了一款名为 Hadoop 的解决大数据管理和处理难题的框架。

Hadoop

Hadoop 是一个开源框架来存储和处理大型数据在分布式环境中。它包含两个模块,一个是 MapReduce,另外一个是 Hadoop 分布式文件系统(HDFS)。

  • MapReduce: 它是一种并行编程模型在大型集群普通硬件可用于处理大型结构化,半结构化和非结构化数据。
  • HDFS: Hadoop 分布式文件系统是 Hadoop 的框架的一部分,用于存储和处理数据集。它提供了一个容错文件系统在普通硬件上运行。

Hadoop 生态系统包含了用于协助 Hadoop 的不同的子项目(工具)模块,如 Sqoop, Pig 和 Hive。

  • Sqoop: 它是用来在 HDFS 和 RDBMS 之间来回导入和导出数据。
  • Pig: 它是用于开发 MapReduce 操作的脚本程序语言的平台。
  • Hive: 它是用来开发 SQL 类型脚本用于做 MapReduce 操作的平台。

注:有多种方法来执行 MapReduce 作业:

  • 传统的方法是使用 Java MapReduce 程序结构化,半结构化和非结构化数据。
  • 针对 MapReduce 的脚本的方式,使用 Pig 来处理结构化和半结构化数据。
  • Hive 查询语言(HiveQL 或 HQL)采用 Hive 为 MapReduce 的处理结构化数据。

Hive 是什么?

Hive 是一个数据仓库基础工具在 Hadoop 中用来处理结构化数据。它架构在 Hadoop 之上,总归为大数据,并使得查询和分析方便。

最初,Hive 是由 Facebook 开发,后来由 Apache 软件基金会开发,并作为进一步将它作为名义下 Apache Hive 为一个开源项目。它用在好多不同的公司。例如,亚马逊使用它在 Amazon Elastic MapReduce。

Hive 不是

  • 一个关系数据库
  • 一个设计用于联机事务处理(OLTP)
  • 实时查询和行级更新的语言

Hiver 特点

  • 它存储架构在一个数据库中并处理数据到 HDFS。
  • 它是专为 OLAP 设计。
  • 它提供 SQL 类型语言查询叫 HiveQL 或 HQL。
  • 它是熟知,快速,可扩展和可扩展的。

Hive 架构

下面的组件图描绘了 Hive 的结构:

Hive Architecture

该组件图包含不同的单元。下表描述每个单元:

单元名称操作
用户接口/界面Hive 是一个数据仓库基础工具软件,可以创建用户和 HDFS 之间互动。用户界面,Hive 支持是 Hive 的 Web UI,Hive 命令行,HiveHD 洞察(在 Windows 服务器)。
元存储Hive 选择各自的数据库服务器,用以储存表,数据库,列模式或元数据表,它们的数据类型和 HDFS 映射。
HiveQL 处理引擎HiveQL 类似于 SQL 的查询上 Metastore 模式信息。这是传统的方式进行 MapReduce 程序的替代品之一。相反,使用 Java 编写的 MapReduce 程序,可以编写为 MapReduce 工作,并处理它的查询。
执行引擎HiveQL 处理引擎和 MapReduce 的结合部分是由 Hive 执行引擎。执行引擎处理查询并产生结果和 MapReduce 的结果一样。它采用 MapReduce 方法。
HDFS 或 HBASEHadoop 的分布式文件系统或者 HBASE 数据存储技术是用于将数据存储到文件系统。

Hive 工作原理

下图描述了 Hive 和 Hadoop 之间的工作流程。

How Hive Works

下表定义 Hive 和 Hadoop 框架的交互方式:

Step No.操作
1Execute Query Hive 接口,如命令行或 Web UI 发送查询驱动程序(任何数据库驱动程序,如 JDBC,ODBC 等)来执行。
2Get Plan 在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。
3Get Metadata 编译器发送元数据请求到 Metastore(任何数据库)。
4Send Metadata Metastore 发送元数据,以编译器的响应。
5Send Plan 编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。
6Execute Plan 驱动程序发送的执行计划到执行引擎。
7Execute Job 在内部,执行作业的过程是一个 MapReduce 工作。执行引擎发送作业给 JobTracker,在名称节点并把它分配作业到 TaskTracker,这是在数据节点。在这里,查询执行 MapReduce 工作。
7.1Metadata Ops 与此同时,在执行时,执行引擎可以通过 Metastore 执行元数据操作。
8Fetch Result 执行引擎接收来自数据节点的结果。
9Send Results 执行引擎发送这些结果值给驱动程序。
10Send Results 驱动程序将结果发送给 Hive 接口。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文