Hadoop教程Hive执行过程.ppt

Hadoop教程Hive执行过程.ppt

ID:48042177

大小:3.17 MB

页数:37页

时间:2020-01-13

Hadoop教程Hive执行过程.ppt_第1页
Hadoop教程Hive执行过程.ppt_第2页
Hadoop教程Hive执行过程.ppt_第3页
Hadoop教程Hive执行过程.ppt_第4页
Hadoop教程Hive执行过程.ppt_第5页
资源描述:

《Hadoop教程Hive执行过程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、HIVE执行过程姚晟1Hive的执行过程2Antlr简介3HiveSql的解析过程Hive的执行过程1.入口/bin/cli.sh调用CliDriver类进行初始化过程处理-e,-f,-h等信息,如果是-h,打印提示信息,并退出读取hive的配置文件,设置HiveConf创建一个控制台,进入交互模式2.在交互方式下,读取每一个输命令行,直到’;’为止,然后提交给processLine(cmd)方法处理,该方法将输入的流以;分割成多个命令,然后交给processCmd(cmd)方法Hive的执行过程3.P

2、rocessCmd(cmd)对输入的命令行进行判断,根据命令的第一个记号(Token),分别进入相应的流程quitorexit系统正常退出!开头的命令行执行操作系统命令source开头的,读取外部文件并执行文件中的命令list列出jarfilearchive其他命令提交给Commandprocess,进行命令的预处理Hive的执行过程4.命令的预处理CommandProcess根据输入命令的第一个记号,分别进行处理set:调用SetProcess类,设置hive的环境参数,并保存在该进程的HiveCon

3、f中dfs:调用DfsProcess类,调用hadoop的shell接口,执行hadoop的相关命令add:调用AddResourceProcessor,导入外部的资源,只对该进程有效delete:与add对应,删除资源其他:提交给Driver类,进行下一步的处理Hive的执行过程5.命令的处理(Driver类的run方法)编译complie(Hive的核心部分)通过语言识别工具Antlr,验证语句的合法性将sql转换成一个抽象语法树(AST)定义树解释器Operator,将AST翻译成逻辑操作树调用g

4、enMapRed方法,生成物理执行计划获取读写锁对操作的表获取一个读写锁acquireReadWriteLocks执行execute将生成的Task提交hadoopAPI处理返回任务的执行时间和状态(成功失败)Hive的执行过程6.获取执行的结果任务执行失败,抛出异常执行成功后,调用Driver的GetReuslt方法,顺序打开每一个输出文件获取每一行的输出,并打印到控制台7.执行清理清理hive执行过程中的中间文件和临时文件退出该条命令的执行,返回控制台并等待下一条命令的输入Hive的执行过程4.ru

5、n(cmd)的执行过程Complie:Execute:Hive的执行过程(示意图)1Hive的执行过程2Antlr简介3HiveSql的解析过程Antlr(ANotherToolforLanguageRecognition)又一个语言识别工具Antlr提供了一种语言工具框架定义标示符,关键字(词法分析)定义表达式(语法分析)可以将文本转换成抽象语法树(AST)树的解析(树分析器)Antlr简介词法分析识别的是字符流通过词法规则,依次读入字符,并转换成记号(Token)例如,select--->selec

6、t关键字的过程就是一个词法分析的过程词法分析过程是一个ASCII分类整理的过程,哪些地方可以跳过(空格、换行、注释),哪些记号属于标识符,哪些记号属于字符串、整数、浮点数等。词法部分的定义以大写字母开头词法分析器Lexer常见的词法定义INT:(‘0’..’9’)+//定义一个正整数FLOAT:INT(’.’INT)//定义一个浮点数CHAR:(‘A’..‘Z’

7、‘a’..‘z’)//定义一个字符String:‘”’(CHAR+)’”’//定义一个字符串WS:(‘’

8、‘t’

9、‘’

10、‘r’)+{s

11、kip();}//定义一个可以忽略的字符COMMENT:‘/*’.*‘*/‘//定义一个多行注释LINE_COMMENT:‘//’~(‘’

12、‘r’)*‘r’?‘‘//定义一个单行注释词法分析器Lexer根据词法分析输出的记号流,分析语法结构,并添加代表语法结构的抽象单词(如:表达式、类、方法等),按照语法结构生成语法树的过程语法分析定义了输入字符串的合法性语法分析将词与词之间的关系用一个语法树表达出来语法部分的定义由小写字母开头、语法分析可以生成抽象语法树(AST)语法分析器(Parser)

13、语法分析器举例:prog:expr//语法解释的入口expr:multExpr((‘+’

14、‘-’)multExpr)*;//定义加减的规则multExpr:atom((‘*’

15、‘/’)atom)*;//乘除法的规则atom:‘(’expr‘)’

16、INT

17、FLOAT;//终结的节点语法分析器(Parser)在语法定义中直接定义动作expr returns [int value]     :   e=multExpr {$value = $e.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。