码迷,mamicode.com
首页 > 其他好文 > 详细

Hive架构

时间:2015-08-17 11:41:15      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:

数据库和数据仓库的区别:

1) 数据库内数据是动态变化的;

  而数据仓库是用来存储数据的(一次写入,多次读取),数据是静态的,只能通过修改数据文件来修改数据仓库中的数据;

2) 数据库中的数据结构比较复杂,而数据仓库中的数据结构则相对简单;         

3)数据库在操作数据时要求响应速度快,即实时的进行增删改查;而数据仓库响应时间比较长。

Hive架构

技术分享

 1) 元数据:Metastore 

  包括:表名、表所属的数据库(默认是default)、表的拥有着、列/分区字段、表的类型(是否是外部表)、表的数据所在的目录等。 

  默认derby数据库问题:①换执行路径后,原来的表不存在了②只能单用户访问同一张表【单线程】。

  这是因为derby数据库特点:在那个目录下运行hive,就那个目录下产生memstore_db文件。 

2) 用户接口:Client 

  CLI(hive shell)JDBC/ODBC(java访问hive)WEBUI(浏览器查看hive) 

3) 底层操作:HDFS+MR 

  使用HDFS进行存储,使用MR进行计算 

4) 驱动器:Driver

  • 解析器:将SQL字符串转换成抽象语法树AST,这一步一般用第三方工具库完成,比如antlrAST进行语法解析,比如表是否存在、字段是否存在、SQL语义是否有误(比如select中被判定为聚合的字段在group by中是否有出现)
  • 编译器:将AST编译生成逻辑执行计划
  • 优化器:对逻辑执行计划进行优化
  • 执行器:把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/TEZ/Spark

元数据与Hive的对应关系:

mysql中hive数据库中的数据表与Hive对应关系,表之间,通过外键"*_ID"关联起来。 

  • DBS表对应【数据库】信息。
  • TBLS表对应【数据表】信息。
  • COLUMNS_V2表对应【字段】信息。
  • 【PARTITIONS】表对应【分区表】信息。
  • SDS对应hdfs上【路径】信息:

Hivehdfs上的默认位置是/user/hive/warehouse,可以通过hive-site.xmlhive.metastore.warehouse.dir属性覆盖默认值。 

  • Hive中【数据库】对应以 .db 结尾的文件夹,【表】对应文件夹,【表中数据】对应数据文件。
  • 如果是【分区表】,则【分区字段】对应着子文件夹。

 

Hive架构

标签:

原文地址:http://www.cnblogs.com/skyl/p/4736088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!