大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
01-Hive简介
无
2022-11-02 08:42:54
23
0
0
bigdata
Hive 是一个在 Hadoop 中用来处理结构化数据的数据仓库基础工具。 Hive 是一个在 Hadoop 中用来处理结构化数据的数据仓库基础工具。它架构在 [Hadoop](https://www.w3cschool.cn/hadoop/) 之上,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。hive 数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供 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) * 实时查询和行级更新的语言 ## Hive 特点 * 它存储架构在一个数据库中并处理数据到 HDFS。 * 它是专为 OLAP 设计。 * 它提供 SQL 类型语言查询叫 HiveQL 或 HQL。 * 它是低学习成本,快速和可扩展的。 ## Hive 架构 下面的组件图描绘了 Hive 的结构:  该组件图包含不同的单元。下表描述每个单元: <table><tbody><tr><th>单元名称</th><th>操作</th></tr><tr><td>用户接口 / 界面</td><td>Hive 是一个数据仓库基础工具软件,可以创建用户和 HDFS 之间互动。用户界面,Hive 支持是 Hive 的 Web UI,Hive 命令行,HiveHD 洞察(在 Windows 服务器)。</td></tr><tr><td>元存储</td><td>Hive 选择各自的数据库服务器,用以储存表,数据库,列模式或元数据表,它们的数据类型和 HDFS 映射。</td></tr><tr><td>HiveQL 处理引擎</td><td> HiveQL 的 Metastore 模式信息查询类似于 SQL 的查询上。这是传统的方式进行 MapReduce 程序的替代品之一。相反,使用 Java 编写的 MapReduce 程序,可以编写为 MapReduce 工作,并处理它的查询。<br></td></tr><tr><td>执行引擎</td><td>HiveQL 处理引擎和 MapReduce 的结合部分是由 Hive 执行引擎。执行引擎处理查询并产生结果和 MapReduce 的结果一样。它采用 MapReduce 方法。</td></tr><tr><td>HDFS 或 HBASE</td><td>Hadoop 的分布式文件系统或者 HBASE 数据存储技术是用于将数据存储到文件系统。</td></tr></tbody></table> # Hive 工作原理 下图描述了 Hive 和 Hadoop 之间的工作流程。  下表定义 Hive 和 Hadoop 框架的交互方式: <table><tbody><tr><th>Step No.</th><th>操作</th></tr><tr><td>1</td><td><b>Execute Query</b><p>Hive 接口,如命令行或 Web UI 发送查询驱动程序(任何数据库驱动程序,如 JDBC,ODBC 等)来执行。</p></td></tr><tr><td>2</td><td><b>Get Plan</b><p>在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。</p></td></tr><tr><td>3</td><td><b>Get Metadata</b><p>编译器发送元数据请求到 Metastore(任何数据库)。</p></td></tr><tr><td>4</td><td><b>Send Metadata</b><p>Metastore 发送元数据,以编译器的响应。</p></td></tr><tr><td>5</td><td><b>Send Plan</b><p>编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。</p></td></tr><tr><td>6</td><td><b>Execute Plan</b><p>驱动程序发送的执行计划到执行引擎。</p></td></tr><tr><td>7</td><td><b>Execute Job</b><p>在内部,执行作业的过程是一个 MapReduce 工作。执行引擎发送作业给 JobTracker,在名称节点并把它分配作业到 TaskTracker,这是在数据节点。在这里,查询执行 MapReduce 工作。</p></td></tr><tr><td>7.1</td><td><b>Metadata Ops</b><p>与此同时,在执行时,执行引擎可以通过 Metastore 执行元数据操作。</p></td></tr><tr><td>8</td><td><b>Fetch Result</b><p>执行引擎接收来自数据节点的结果。</p></td></tr><tr><td>9</td><td><b>Send Results</b><p>执行引擎发送这些结果值给驱动程序。</p></td></tr><tr><td>10</td><td><b>Send Results</b><p>驱动程序将结果发送给 Hive 接口。</p></td></tr></tbody></table>
上一篇:
01-Hadoop安装教程
下一篇:
01-InfluxDB安装
文档导航