普开数据大数据培训牡课程讲解:HIVE执行过程.pdf

普开数据大数据培训牡课程讲解:HIVE执行过程.pdf

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
普开数据大数据培训牡课程讲解:HIVE执行过程

普开数据大数据培训课程讲解:HIVE执行 过程 •Hive的执行过程 1 •Antlr 简介 2 •Hive Sql的解析过程 3 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: •Hive的执行过程 1 •Antlr 简介 2 •Hive Sql的解析过程 3  Antlr(ANother Tool for Language Recognition) 又一个语言识别工具  Antlr提供了一种语言工具框架  定义标示符,关键字(词法分析)  定义表达式(语法分析)  可以将文本转换成抽象语法树(AST)  树的解析(树分析器)  词法分析识别的是字符流  通过词法规则,依次读入字符,并转换成记号(Token) 例如,s e l e c tselect 关键字的过程就是一个词 法分析的过程  词法分析过程是一个ASCII分类整理的过程,哪些地方可 以跳过(空格、换行、注释) ,哪些记号属于标识符,哪些 记号属于字符串、整数、浮点数等。  词法部分的定义以大写字母开头 常见的词法定义  INT:(‘0’..’9’)+ //定义一个正整数  FLOAT:INT(’.’INT) //定义一个浮点数  CHAR : (‘A’..‘Z’ | ‘a’..‘z’) //定义一个字符  Str

文档评论(0)

ahuihuang1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档