收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 


hadoop的笔记
状态: 离线
人气:3629594
访问用户量:3104
笔记经验:
总积分:1409
级别:普通会员
搜索本笔记
ta的交流分类
ta的交流主题贴(131)
ta的所有交流贴(138)
ta的全部笔记
全部笔记(249)
未分类笔记(0)
hadoop(109)
luoli的Hado……(19)
精通hadoop(10)
Hadoop原理与代……(6)
HBase(15)
深入浅出学Hive(11)
Hadoop实战-中……(11)
Hadoop实战-初……(8)
hadoop & h……(9)
Hive(18)
zookeeper(8)
Hadoop Str……(14)
云计算综合实战项目(11)
存档
2013-04(11)
2012-10(11)
2012-09(10)
2012-08(191)
2012-07(26)

2012-12-24 19:30:24
Hive的原理—— 深入浅出学Hive
浏览(72328)|评论(1)   交流分类:Java|笔记分类: 深入浅出学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
•读取文件
MapperInputFormat
•该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
精品视频课程推荐

研磨设计模式——跟着cc学设计系列视频教程
本视频课程是北京Java私塾原创精品书籍《研磨设计模式》一书的配套学习视频,由《研磨设计模式》的第一作者CC录制 课程目标:全面、系统的掌握GoF设计模式的知识,达到可以在实际项目开发中运用的能力 技术要点:如何实现可配置、如何实现缓存以及缓存的管理、如何实现用缓存来控制多实例的创建、如何实现参数化工厂、 如何实现可扩展工厂、如何实现原型管理器、如何实现Java的静态代理和动态代理、如何实现多线程处理队列请求、 如何实现命令的参数化配置、可撤销的操作、宏命令、队列请求和日志请求、如何实现翻页迭代、如何检测环状结构、 如何实现通用的增删改查、如何模拟工作流来处理流程、如何实现简单又通用的XML读取、如何实现模拟AOP的功能......

log4j&slf4j基础实战视频教程
学习在java项目中使用log4j、jdk自带的日志框架和slf4j

ssh+jbpm项目(某集团OA)视频教程
达到能综合使用Struts2+Spring3+Hibernate3+Jbpm4来进行实际项目开发的能力。 包括:ssh和jbpm的整合;数据字典;通用DAO(Spring+Hibernate+泛型+反射+SpEL+模板方法模式);自动生成UUID的加强版;分层开发、SSH联合的基本开发;翻页的taglib;示范真实值和表现值,数据参照的实现;文件上传下载;主子表操;登录验证码;登录控制的拦截器

Ajax+JSON基础实战视频教程
数据校验、Javascript模拟多线程、下拉列表联动、操作XML、AJAX结合JSON的操作、Json-lib的使用

XML基础视频教程
创建规范的XML文档,DTD的作用,并且可以根据要求创建私用的DTD,通过JavaScript解析XML DOM

浏览(72328)|评论(1)   交流分类:Java|笔记分类: 深入浅出学Hive

评论(1)
1楼 笑傲帝王将相  2012-12-24 引用
学习一下...
请登录后评论 登录

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网