hadoop笔记之Hive入门(Hive的体系结构)

时间:2023-03-09 15:34:29
hadoop笔记之Hive入门(Hive的体系结构)

Hive入门(二)

Hive入门(二)

Hive的体系结构

○ Hive的元数据

  • Hive将元数据存储在数据库中(metastore),支持mysql、derby、oracle等数据库,Hive默认是derby数据库
  • Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

    hadoop笔记之Hive入门(Hive的体系结构)

○ HQL的执行过程

  • 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(Plan)的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行

详细过程:

  1. HQL——select
  2. 解析器——词法分析
  3. 编译器——生成HQL的执行计划(javac java –> .class)
  4. 优化器——生成最佳的执行计划
  5. 执行

设我们有一个员工信息表,进入到oracle:

SQL> ——查询10号部门的员工信息
SQL> explain plan for select * from emp where deptno=10:

已解释。

SQL> ——查看该select的执行计划
SQL> select * from table(dbms_xplan.display):

执行全表扫描,当然全表扫描的代价相对要高一些

下面将对部门号建立索引

SQL> creaete index myindex on emp(deptno):

索引已创建。

SQL> explain plan for select * from emp where deptno=10:

已解释。

SQL> select * from table(dbms_xplan.display):

这事就是基于索引的扫描,对于全表扫描更加快速

对于Hive跟oracle是差不多的


所以:

○ hadoop

  • 用HDFS进行存储,利用MapReduce进行计算

○ 元数据存储(MetaStore)

  • 通常是存储在关系数据库如mysql、derby中

hadoop笔记之Hive入门(Hive的体系结构)