您当前的位置: 首页 >  hive

Bulut0907

暂无认证

  • 2浏览

    0关注

    346博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Hive的架构、工作原理、数据类型

Bulut0907 发布时间:2022-05-20 09:40:03 ,浏览量:2

目录
  • 1. Hive架构
  • 2. Hive工作原理
  • 3. Hive数据类型

支持多表插入

1. Hive架构

Hive架构

  • 当用户使用JDBC/ODBC操作Hive时,先使用hiveserver2的thrift跨语言服务将用户使用的语言转换成Hive的语言,再发送给Hive Driver生成执行计划,先将执行计划保存到HDFS,再发送给执行引擎进行执行
  • 用户接口:Hive shell command line interface值Hive自带的命令行接口;Hive Client指指客户端工具,如Beeline远程调用客户端和Java语言编写的应用程序等;WebGUI指通过浏览器访问Hive
  • hiveserver2:一种遵循thrift协议的跨语言服务框架,使用该框架,可以让不同的编程语言调用Hive接口
  • Hive Driver: 主要指Parser解析器、Compiler编译器、Optimizer优化器、Executor执行器,完成HiveQL查询语句的词法解析、语法解析、编译、优化、物理执行计划的生成
  • MetaData Store: Hive的元数据通常包括表名、列、分区、数据所在的目录位置等信息。Derby不支持多用户操作,数据储存目录不固定,所以通常采用Mysql作为元数据库
2. Hive工作原理

Hive工作原理

工作原理如下所示:

  1. 用户通过用户接口向Hive Driver发送executeQuery
  2. HIve Driver向Compiler发送getPlan请求
  3. Compiler去Metadata Store获取需要的元数据信息
  4. Metadata Store向Compiler发送元数据信息
  5. Compiler将executeQuery转换成抽象语法树,再转换成查询块,再转换成逻辑查询计划,最终转换成物理查询计划,向Hive Driver发送物理查询计划
  6. Hive Driver向execution engine提交executePlan,execution engine从metastore请求并获取元数据信息,然后向真正的执行引擎提交任务,真正的执行引擎会对HDFS执行文件读写操作
  7. 用户接口向Hive Driver发起获取结果集的请求
  8. Hive Driver向execution engine发起获取结果集的请求,同时execution engine从HDFS获取结果集
  9. execution engine向Hive Driver发送结果集,Hive Driver获取到结果集后返回给用户接口
3. Hive数据类型

基本数据类型

数据类型描述tinyint1字节有符号整数smallint2字节有符号整数int4字节有符号整数bigint1字节有符号整数float4字节单精度浮点数double8字节双精度浮点数decimal高精度浮点数, 通过decimal(precision, scale)指定精度和小数位,小数位默认为0没有小数位,精度默认为10timestamp精度到纳秒的UNIX时间戳date格式为yyyy-MM-dd描述的日期string字符串,没有长度限制varchar变长字符串,长度限制区间为1 ~ 65355,如varchar(64),当有30个字符时,只占用30个字符的位置char定长字符串, 如char(64),当有30个字符时,会占用30个字符的位置,剩余34个位置由空格填充boolean布尔值,true或falsebinary字节数组

集合数据类型

数据类型描述array具有相同数据类型的集合,元素是有序的,索引从0开始,可以通过索引获取执行位置的元素,如arraymap键值对集合, 如mapstruct对象,如struct,可以通过field.name访问元素内容
关注
打赏
1664501120
查看更多评论
立即登录/注册

微信扫码登录

0.0379s