- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java私塾Hive的原理深入浅出学Hive
作者:Java私塾 创建时间: CREATEDATE \@ yyyy-M-d HH:mm:ss 2013-12-6 14:52:00 内容来自:Java私塾
Java私塾:Hive的原理—— 深入浅出学Hive??
目录:
初始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对JoinOperatorJoin两份数据SelectOperator选择输出列FileSinkOperator建立结果数据,输出至文件FilterOperator过滤输入数据GroupByOperatorGroupBy语句MapJoinOperator/*+mapjoin(t) */LimitOperatorLimit语句UnionOperatorUnion语句?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 OperatorSelect 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?
?
?
文档评论(0)