Hive架构图及流程

一上图肯定会很晕,所以先把流程顺一遍看图就会清晰很多.

流程

  1. 客户端提交Hql语句任务给Driver

  2. Driver会创建一个session handler用于查询操作,接着dirver会将查询操作发送到compiler生成一个execute plan

  3. Compiler通过对Hql词法,语法分析得到要操作的表,然后到MetaStore中获取需要的Hive元数据信息。

  4. Compiler得到元数据信息,对task进行编译,先将Hql转换为抽象语法树,然后将抽象语法树转换成查询块,再将查询块转化为逻辑的查询plan,重写逻辑查询plan,再把逻辑plan转化为物理的plan.

  5. 最后选择最佳plan提交给Driver。

  6. Driver则将plan转交给ExecutionEngine去执行.

    执行器收到方案后,会进行判断:

    6.1 如果当前方案不涉及到MR组件,比如为表添加分区信息、简单的查询操作 等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据.

    6.1 如果方案需要转换成MR任务,则会将job 提交给Hadoop的JobTracker或者 RsourceManager执行.

    6.2 执行完成

    6.3 执行器会和HDFS交互,获取结果文件信息

  7. 并返回执行结果.(如果客户端提交Hql语句是带有查询结果性的话,则会发生:7→8→9,最后完成结果的查询)

架构图

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值