- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
普开数据大数据培训课程讲解-HIVE执行过程
HIVE执行过程;Hive的执行过程;1. 入口 /bin/cli.sh
调用CliDriver类进行初始化过程
处理 -e, -f, -h等信息,如果是-h,打印提示信息,并退出
读取hive的配置文件,设置HiveConf
创建一个控制台,进入交互模式
2. 在交互方式下,读取每一个输命令行,直到’;’为止,然后提交给processLine(cmd)方法处理,该方法将输入的流以;分割成多个命令 ,然后交给processCmd(cmd)方法
;3. ProcessCmd(cmd) 对输入的命令行进行判断,根据命令的第一个记号(Token),分别进入相应的流程
quit or exit 系统正常退出
!开头的命令行 执行操作系统命令
source 开头的,读取外部文件 并执行文件中的命令
list 列出 jar file archive
其他命令提交给Commandprocess ,进行命令的预处理;4. 命令的预处理 CommandProcess
根据输入命令的第一个记号,分别进行处理
set : 调用SetProcess类,设置hive的环境参数,并保存在该进程的HiveConf中
dfs: 调用DfsProcess类,调用hadoop的shell接口,执行hadoop的相关命令
add: 调用AddResourceProcessor??,导入外部的资源,只对该进程有效
delete: 与add对应,删除资源
其他 :提交给Driver类,进行下一步的处理;5. 命令的处理( Driver类的run方法)
编译 complie(Hive的核心部分)
通过语言识别工具Antlr,验证语句的合法性
将sql转换成一个抽象语法树(AST)
定义树解释器Operator,将AST翻译成逻辑操作树
调用genMapRed方法,生成物理执行计划
获取读写锁
对操作的表获取一个读写锁acquireReadWriteLocks
执行 execute
将生成的Task提交hadoop API 处理
返回任务的执行时间和状态(成功 失败);6. 获取执行的结果
任务执行失败,抛出异常
执行成功后,调用Driver的GetReuslt方法,顺序打开每一个输出文件
获取每一行的输出,并打印到控制台
7. 执行清理
清理hive执行过程中的中间文件和临时文件
退出该条命令的执行,返回控制台并等待下一条命令的输入
;4. run(cmd)的执行过程
Complie:
Execute:;Antlr(ANother Tool for Language Recognition)
又一个语言识别工具
Antlr提供了一种语言工具框架
定义标示符,关键字(词法分析)
定义表达式(语法分析)
可以将文本转换成抽象语法树(AST)
树的解析(树分析器)
;词法分析识别的是字符流
通过词法规则,依次读入字符,并转换成记号(Token)
例如,s e l e c t---select 关键字的过程就是一个词法分析的过程
词法分析过程是一个ASCII分类整理的过程,哪些地方可以跳过(空格、换行、注释) ,哪些记号属于标识符,哪些记号属于字符串、整数、浮点数等。
词法部分的定义以大写字母开头;常见的词法定义
INT:(‘0’..’9’)+ //定义一个正整数
FLOAT:INT(’.’INT) //定义一个浮点数
CHAR: (‘A’..‘Z’ | ‘a’..‘z’) //定义一个字符
String: ‘”’(CHAR+)’”’ //定义一个字符串
WS : (‘ ’ |‘\t’ |‘\n’ |‘\r’ )+ {skip();} //定义一个可以忽略的字符
COMMENT : ‘/*’ . * ‘*/‘ //定义一个多行注释
LINE_COMMENT : ‘//’ ~ (‘\n’ | ‘\r’) * ‘\r’? ‘\n‘
//定义一个单行注释
;
根据词法分析输出的记号流,分析语法结构,并添加代表语法结构的抽象单词(如:表达式、类、方法等),按照语法结构生成语法树的过程
语法分析定义了输入字符串的合法性
语法分析将词与词之间的关系用一个语法树表达出来
语法部分的定义由小写字母开头、
语法分析可以生成抽象语法树(AST)
;语法分析器举例:
prog: expr //语法解释的入口
expr : multExpr ((‘+’|‘-’) multExpr)* ; //定义加减的规则
multExpr : atom
您可能关注的文档
最近下载
- GB_T 42900-2023 金属材料 高应变速率高温压缩试验方法.docx
- 中国抑郁障碍防治指南(第二版)简介PPT课件.pptx
- 心脏肿瘤讲课.pptx VIP
- 外研社版英语4年级上册单词表衡水体描红练字帖(三年级起点含音标和例句).pdf
- 电动自行车一线通、RS485、CAN2.0通信协议规范、基于RS485通信的充放电流程示例.pdf VIP
- 湖南省湖南师范大学附属中学2024-2025学年高二上学期入学考试数学试卷(解析版).docx VIP
- 四年级音乐 跳柴歌 课件.pptx
- 《复用医疗器械预处理操作规程》.pdf VIP
- 火灾自动报警及联动控制系统技术交底.docx VIP
- GB_T 43674-2024加氢站通用要求.docx VIP
文档评论(0)