普开数据大数据培训课程讲解-HIVE执行过程.pptxVIP

普开数据大数据培训课程讲解-HIVE执行过程.pptx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档