Hive的基本理论知识

Hive是什么?

个人理解是把存储在hdfs上的数据映射位一张数据库表,提供类sql(HQL)语句的查询,方便数据的分析,查询。另外一点就是自动的把HQL转化为MapRudecu、Tez、Spark执行。

Hive的架构

  • 用户接口:可以是hive shell,jdbc(java 访问hive),webUI
  • 元数据:包括表名,表所属的数据库(默认为default)、表拥有者、表类型、列字段,分区字段,表数据所在目录。默认存储在derby中,因为是单线程的所以推荐采用mysql存储metaStore
  • 驱动器包括:
    • 解析器:将sql字符串转换为抽象语法树AST
    • 编译器:将AST编译生成逻辑执行计划
    • 优化器:对逻辑执行计划进行优化
    • 执行器:对逻辑执行计划转化成可运行的物理计划:MR/TEZ/Spark

相关推荐