Hive是用于处理Hadoop中结构化数据的数据仓库的基础工具。 构建在Hadoop之上,总是被分类为大数据,便于查询和分析。 它还提供了一个简单的sql查询功能,可以将sql语句转换为MapReduce任务并执行。
术语“大数据”是一个大型数据集,包含海量数据、高速数据和日益增长的各种数据的集合。 传统的数据管理系统很难加工大数据。 因此,Apache软件基金会宣布了一个名为Hadoop的大数据管理和解决挑战的框架。
Hadoop
Hadoop是一个开放源代码框架,用于在分布式环境中存储和处理大数据。 由MapReduce和hadoopdistributedfilesystem (HDFS )两个模块组成。MapReduce :这是大型集群的通用硬件,是可以用于处理大型结构化、半结构化、非结构化数据的并行编程模型。 HDFS:Hadoop分布式文件系统是Hadoop框架的一部分,用于存储和处理数据集。 容错文件系统在普通硬件上运行。 Hadoop生态系统包含Sqoop、Pig、Hive等用于帮助Hadoop的各种子项目(工具)模块。
Sqoop:用于在HDFS和RDBMS之间导入和导出数据。 Pig:是用于开发MapReduce操作的脚本程序语言的平台。 Hive:是用于开发MapReduce操作的SQL类型脚本的平台。 注:有多种方法可以执行MapReduce操作。
传统的方法是使用Java MapReduce程序创建结构化、半结构化和非结构化数据。 MapReduce的脚本方法使用Pig处理结构化和半结构化数据。 Hive查询语言(HiveQL或HQL )采用以Hive为MapReduce的处理结构化数据。
Hive是什么?
Hive是用于在Hadoop中处理结构化数据的数据仓库的基础工具。 构建在Hadoop之上,总是被分类为大数据,便于查询和分析。最初,Hive由Facebook开发,后来由Apache软件基金会开发,进而作为名义上的Apache Hive成为开源项目。 被各种各样的公司使用。 例如,亚马逊在亚马逊电子地图上使用它。
Hive 不是
关系数据库在线事务处理(OLTP )为实时查询和行级更新而设计的语言Hiver特点
其存储架构位于一个数据库中,用于处理HDFS中的数据专为OLAP设计。 提供名为HiveQL或HQL的SQL型语言查询。 众所周知,速度快,可扩展性好,可扩展性好。Hive架构
以下组件图显示了Hive的结构。
这个组件图包含不同的单元。 下表显示了各单元的说明。
设备名称
操作
用户界面/界面
Hive是一种基于数据仓库的工具软件,用于创建用户与HDFS之间的交互。 用户界面、Hive支持包括Hive的Web UI、Hive命令行、HiveHD洞察(在Windows服务器上)。
元存储器
Hive选择各自的数据库服务器以存储表、数据库、列模式或元数据表、它们的数据类型和HDFS映射。
HiveQL处理引擎
HiveQL类似于SQL查询上的元模式信息。 这是用以往的方式进行MapReduce程序的替代品之一。 相反,用Java编写的MapReduce程序可以充当MapReduce并处理该查询。
运行发动机
HiveQL处理引擎和MapReduce的结合部分是Hive执行引擎。 引擎处理查询并生成结果与MapReduce的结果相同。 采用的是MapReduce法。
HDFS或基于h的
Hadoop的分布式文件系统或HBASE数据存储技术用于将数据存储在文件系统中。
Hive工作原理
下图显示了Hive和Hadoop之间的工作流。
下表定义了Hive框架和Hadoop框架的交互方式。
步骤否。
操作
1
执行查询
命令行和Web UI等Hive接口通过发送查询驱动程序、JDBC、ODBC等数据库驱动程序来执行。
2
获取计划
在驱动程序的帮助下,联系编译器,分析查询的检查语法和查询的计划或查询要求。
3
获取元数据
编译器将元数据请求发送到Metastore (任何数据库)。
4
发送元数据
Metastore发送元数据作为编译器的响应。
5
发送计划
编译器检查要求,并将计划重新发送到驱动程序。 这样就完成了查询的分析和编译。
6
执行计划
驱动程序发送的执行计划被发送到执行引擎。
7
执行作业
在内部,执行工作的过程是MapReduce的工作。 引擎将作业发送到作业跟踪器,并在名称节点中将作业指定给TaskTracker。 这是数据节点。 其中,查询执行MapReduce的工作。
7.1
元数据操作系统
同时,在运行时,执行引擎可以通过Metastore执行元数据操作。
8
fetch结果
执行引擎接收来自数据节点的结果。
9
发送结果
执行引擎将这些结果值发送给驱动器。
10
发送结果
驱动程序将结果发送到Hive界面。