单位名称 | 操作 |
User Interface | Hive 是一种数据仓库基础架构软件,可以创建用户和 HDFS 之间的交互。 Hive 支持的用户界面包括 Hive Web UI、Hive 命令行和 Hive HD Insight(在 Windows 服务器中)。 |
Meta Store | Hive 选择各自的数据库服务器来存储表、数据库、表中的列、它们的数据类型和 HDFS 映射的架构或元数据。 |
HiveQL Process Engine | HiveQL 类似于 SQL,用于查询 Metastore 上的架构信息。它是 MapReduce 程序传统方法的替代品之一。我们可以为 MapReduce 作业编写一个查询并对其进行处理,而不是用 Java 编写 MapReduce 程序。 |
Execution Engine | HiveQL 流程引擎和 MapReduce 的结合部分是 Hive 执行引擎。执行引擎处理查询并生成与 MapReduce 结果相同的结果。它使用了 MapReduce 的风格。 |
HDFS 或 HBASE | Hadoop 分布式文件系统或 HBASE 是将数据存储到文件系统中的数据存储技术。 |
步骤号 | 操作 |
1 | 执行查询
Command Line 或 Web UI 等 Hive 接口将查询发送给 Driver(任何数据库驱动程序,如 JDBC、ODBC 等)执行。
|
2 | 获取计划
驱动程序借助解析查询的查询编译器来检查语法和查询计划或查询的要求。
|
3 | 获取元数据
编译器向Metastore(任何数据库)发送元数据请求。
|
4 | 发送元数据
Metastore 发送元数据作为对编译器的响应。
|
5 | 发送计划
编译器检查需求并将计划重新发送给驱动程序。到这里,一个查询的解析和编译就完成了。
|
6 | 执行计划
驱动程序将执行计划发送给执行引擎。
|
7 | 执行作业
在内部,执行作业的过程是一个MapReduce作业。执行引擎将作业发送到 Name 节点中的 JobTracker,并将该作业分配给 Data 节点中的 TaskTracker。在这里,查询执行 MapReduce 作业。
|
7.1 | Metadata Ops
在执行的同时,执行引擎可以通过 Metastore 执行元数据操作。
|
8 | 获取结果
执行引擎从数据节点接收结果。
|
9 | 发送结果
执行引擎将这些结果值发送给驱动程序。
|
10 | 发送结果
驱动程序将结果发送到 Hive 接口。
|