mindmap
  root((Apache Hive))
    Hive Architecture
    Hive Metastore Server (HMS)
    Hive Develop Doc
    Hive Deploy Documentation
    

Apache Hive

Hive由Facebook开源,是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能,解决 海量结构化日志 的数据统计工具

Hive本质:将HQL转化成 MapReduce 程序

Hive Architecture

  • 用户接口:Client
    • CLI(command-line interface)、JDBC/ODBC(jdbc访问hive)、WEBUI(浏览器访问hive)
  • 元数据:Metastore
    • 默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore(表名,表的列,库信息)
  • Hadoop
    • 使用HDFS进行存储,使用MapReduce进行计算
    • 路径: /user/hive/warehouse
  • 驱动器:Driver
    • 解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误
    • 编译器(Physical Plan):将AST编译生成逻辑执行计划
    • 优化器(Query Optimizer):对逻辑执行计划进行优化
    • 执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/Spark

Hive Metastore Server (HMS)

Hive是针对数据仓库应用设计的,而数据仓库的内容是 读多写少的。因此,Hive中不建议对数据的改写,所有的数据都是在加载的时候确定好的

Hive的数据模型

HiveHDFS
目录
分区目录
数据文件
文件
视图/

Hive Relateion

Hive Integration

Hive On Cloud

Resources

Deploy Documentation