Hive的工作原理

一、SQL语句转换成MapReduce作业的基本原理

join的实现原理:sql获取的数据先通过map函数处理,转换成key-value形式,接着shuffle为归并的过程,将key相同的归并到一起,最后通过Reduce函数处理。(关于MapReduce与shuffle的详解请看MapReduce篇)

二、
Hive中SQL查询转换成MapReduce作业的过程
•当用户向Hive输入一段命令或查询时,Hive需要与Hadoop交互工作来完成该操作:
•驱动模块接收该命令或查询编译器
•对该命令或查询进行解析编译
•由优化器对该命令或查询进行优化计算
•该命令或查询通过执行器进行执行
作业图:

1步:由Hive驱动模块中的编译器对用户输入的SQL语言进行词法和语法解析,将SQL语句转化为抽象语法树的形式

2步:抽象语法树的结构仍很复杂,不方便直接翻译为MapReduce算法程序,因此,把抽象语法书转化为查询块

3步:把查询块转换成逻辑查询计划,里面包含了许多逻辑操作符


4步:重写逻辑查询计划,进行优化,合并多余操作,减少MapReduce任务数量


5步:将逻辑操作符转换成需要执行的具体MapReduce任务


6步:对生成的MapReduce任务进行优化,生成最终的MapReduce任务执行计划


7步:由Hive驱动模块中的执行器,对最终的MapReduce任务进行执行输出









Impala数据仓库:
Impala 是由 Cloudera 公司开发的新型查询系统,它提供 SQL 语义,能查询存储在 Hadoop HDFS HBase 上的 PB 级大数据 在性能上比 Hive 高出 3~30
Impala 的运行需要依赖于 Hive 的元数据
Impala 是参照 Dremel 系统进行设计的
Impala 采用了与商用并行关系数据库类似的分布式查询引擎 ,可以 直接与 HDFS HBase 进行交互 查询
Impala Hive 采用相同的 SQL 语法、 ODBC 驱动程序和用户接口

总结得出:与Hive属于同一类型的数据仓库,现配合与Hive使用,性能较高,弥补Hive本身存在的缺陷,在这里就不细讲了

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值