HIVE 基本概念
来源:互联网 发布:转行做程序员 编辑:程序博客网 时间:2024/05/16 15:29
Hive架构
hive架构图
hive组件
用户接口
CLI、JDBC/ODBC和WebGUI。其中,CLI为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。元数据存储
Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。解释器、编译器、优化器、执行器
解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成(包含的查询,比如select from tbl不会生成MapRedcue任务)。
Hive与Hadoop的关系
Hive利用HDFS存储数据,利用MapReduce查询数据
Hive与Hadoop关系图Hive的数据存储
1、Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)2、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。
3、Hive 中包含以下数据模型:DB、Table,External Table,Partition,Bucket。
- db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
- table:在hdfs中表现所属db目录下一个文件夹
- external table:与table类似,不过其数据存放位置可以在任意指定路径
- partition:在hdfs中表现为table目录下的子目录
- bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件
Hive操作符Operator
• 编译器将一个Hive QL转换操作符
• 操作符是Hive的最小的处理单元
• 每个操作符代表HDFS的一个操作或者一道MapReduce作业Operator
• Operator都是hive定义的一个处理过程• Operator都定义有:
• protected List <Operator<? extends Serializable >> childOperators;
• protected List <Operator<? extends Serializable >> parentOperators;
• protected boolean done; // 初始化值为false
• 所有的操作构成了 Operator图,hive正是基于这些图关系来处理诸如limit, group by, join等操作
HiveSql执行流程
1、 提交sql ,交给驱动
2、驱动编译,解析相关的字段表信息
3、去metastore查询相关的信息,返回字段表信息
4、编译返回信息 发给驱动
5、驱动发送一个执行计划,交给执行引擎
6.0、DDLs 对数据库表的操作的 直接和metastore交互
create table tab(name string);6.1、把job交给job tracker 让task tracker执行 返回执行信息
6.2、完成job返回数据信息,找namenode查数据
6.3、namenode交互
select count(1) from tab;6.1、dfs ops 直接和直接去数据
select * from tab;7、返回结果信息集
- HIVE 基本概念
- hive基本概念
- Hive基本概念
- 1001-hive基本概念
- Hive基本概念及操作
- hive核心基本概念
- Hive的基本概念
- Hive学习之Hive基本概念及实践
- hive (数据仓库工具) 基本概念
- Hive笔记一之基本概念与安装
- 基本概念
- 基本概念
- 基本概念
- 基本概念
- 基本概念
- 基本概念
- 基本概念
- 基本概念
- Android仿微信图片选择器
- openstack网络(一)
- android自定义View之3D索引效果
- 排序算法——交换类排序
- MySQL学习笔记(一)2016-12-11
- HIVE 基本概念
- 网络编程的对应的四/七层结构,以及其对应的协议
- [jQuery知识]jQuery之知识十四-Ajax高级进阶
- C语言类型转换知多少?
- 时区弄错, 导致定时任务不生效, 大问题!------GMT和GMT+8
- 程序员 | 冬天到了,先储备点“粮食”
- __attribute__使用方法
- hadoop搭建前奏 --- 网络相关配置
- PHP遍历文件夹