目录:

初始Hive

Hive安装与配置

Hive内建操作符与函数开发

Hive JDBC

Hive参数

Hive高级编程

Hive QL

Hive Shell基本操作

Hive优化

Hive体系结构

Hive原理

第一部分:Hive原理

为什么要学习Hive的原理
•一条Hive HQL将转换为多少道MR作业
•怎么样加快Hive的执行速度
•编写Hive HQL的时候我们可以做什么
•Hive 怎么将HQL转换为MR作业
•Hive会采用什么样的优化方式
Hive架构&执行流程

Hive执行流程
•编译器将一个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等操作
Hive执行流程
操作符
描述
TableScanOperator
扫描hive表数据
ReduceSinkOperator
创建将发送到Reducer端的<Key,Value>对
JoinOperator
Join两份数据
SelectOperator
选择输出列
FileSinkOperator
建立结果数据,输出至文件
FilterOperator
过滤输入数据
GroupByOperator
GroupBy语句
MapJoinOperator
/*+mapjoin(t) */
LimitOperator
Limit语句
UnionOperator
Union语句

•Hive通过ExecMapper和ExecReducer执行MapReduce任务
•在执行MapReduce时有两种模式
•本地模式
•分布式模式
ANTLR词法语法分析工具
•ANTLR—Another Tool for Language Recognition
•ANTLR 是开源的
•为包括Java,C++,C#在内的语言提供了一个通过语法描述来自动构造自定义语言的识别器(recognizer),编译器(parser)和解释器(translator)的框架
•Hibernate就是使用了该分析工具

Hive编译器

编译流程

第二部分:一条HQL引发的思考
案例HQL
•select key from test_limit  limit 1
•Stage-1
•TableScan Operator>Select Operator-> Limit->File Output Operator
•Stage-0
•Fetch Operator
•读取文件
Mapper与InputFormat
•该hive MR作业中指定的mapper是:
•mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
•input format是:
•hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 
•该hive MR作业中指定的mapper是:
•mapred.mapper.class = org.apache.hadoop.hive.ql.exec.ExecMapper
•input format是:
•hive.input.format  = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat 

转载请注明出处【  http://sishuok.com/forum/blogPost/list/0/6232.html】

深入浅出学Hive——Hive原理相关推荐

  1. Hive 高级编程??深入浅出学Hive

    目录: 初始Hive Hive安装与配置 Hive 内建操作符与函数开发 Hive JDBC hive参数 Hive 高级编程 Hive QL Hive Shell 基本操作 hive 优化 Hive ...

  2. 深入浅出学Hive:Hive高级编程

    目录: 初始Hive Hive安装与配置 Hive内建操作符与函数开发 Hive JDBC Hive参数 Hive高级编程 Hive QL Hive Shell基本操作 Hive优化 Hive体系结构 ...

  3. 深入浅出学Hive:Hive优化

    目录: 初始Hive Hive安装与配置 Hive内建操作符与函数开发 Hive JDBC Hive参数 Hive高级编程 Hive QL Hive Shell基本操作 Hive优化 Hive体系结构 ...

  4. 深入浅出学Hive:Hive内建操作符与函数开发

    目录: 初始Hive Hive安装与配置 Hive内建操作符与函数开发 Hive JDBC Hive参数 Hive高级编程 Hive QL Hive Shell基本操作 Hive优化 Hive体系结构 ...

  5. 深入浅出学Hive:Hive体系结构

    第一部分:概念 概念 •用户接口:用户访问Hive的入口 •元数据:Hive的用户信息与表的MetaData •解释器:分析翻译HQL的组件 •编译器:编译HQL的组件 •优化器:优化HQL的组件 第 ...

  6. 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)

    目录: 5 HIVE开发 5.1 Hive JDBC开发 5.2 Hive UDF 6 Hive的体系结构 6.2 Thrift服务器 6.3 Driver 6.4 元数据库Metastore 6.5 ...

  7. 一文读懂Hive(架构原理,DDL,常用函数,优化技巧)

    1.HIVE简介 1.什么是HIVE hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据: 可以将结构化的数据文件映射为一 ...

  8. python原理书籍_python书籍推荐:《深入浅出深度学习:原理剖析与Python实践》

    在过去的这十年,深度学习已经席卷了整个科技界和工业界,2016年谷歌阿尔法狗打败围棋世界冠军李世石,更是使其成为备受瞩目的技术焦点. 今日,小编就为大家推荐一本能让初学者和"老司机" ...

  9. 深入浅出学 Vue 开发

    课程介绍 前端技术日新月异,每一种新的思想出现,都代表了一种技术的跃进.架构的变化,那么对于目前的前端技术而言,MVVM 的思想已经可以代表当今前端领域的前沿思想理念,Angular.React.Vu ...

最新文章

  1. VRRP在企业网中的应用(H3C设备)
  2. hibernate教程--检索方式(hql,sql,QBC)
  3. 重新同步多线程集成测试
  4. php7有没有使用jit,RegEx不适用于长模式PCRE的JIT编译器堆栈限制 – PHP7
  5. 怎么多次调用c语言dll,c-如何从注入到同一程序的另一个.dll中调用...
  6. dipole antenna simulation by HFSS
  7. 代码随笔——点阵汉字在LCD上的显示
  8. xshell删除文件夹命令_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总
  9. 36 Unicode和字节字符串
  10. Spring多个版本源码地址分享
  11. **踩坑之通用Mapper中 Mapper.selectByExample(example)**的返回
  12. ulipad.4.1.zip linux,在ubuntu中安装ulipad
  13. python实现wgs84坐标系和ECEF坐标系的互换
  14. Lottie动画详解
  15. Mac有些网址打不开问题解决办法
  16. OSS回源的几种方式和应用场景
  17. mysql ibd恢复数据_mysql通过ibd恢复数据
  18. python txt文件常用读写操作
  19. html基础之好看的header
  20. 医学图像分割UNet

热门文章

  1. 我们可能安全地边过马路边玩手机吗?
  2. 群狼调研开展深圳市某区开展控烟工作暗访
  3. java top命令_top 命令详解
  4. 设置Ubuntu 的vim/vi 自动显示行号信息
  5. 那些突然想到的问题---移动硬盘不能连手机的一些问题
  6. 移动端事件touchstart touchmove touchend 动画事件 过渡事件
  7. java jmx 开启_动态开启jmx服务
  8. 【进阶二】Python实现VRPTW常见求解算法——差分进化算法(DE)
  9. 【无线篇】(6.0) ❀ 06. SSID 与桥模式 ❀ FortiAP 无线AP
  10. Bootstrap中如何制作徽章?