打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HIVE架构

UI:

     用于提交查询的客户端,hive自带有CLI(command line),现在推荐使用beeline

DRIVER:

               1.用于接收客户端提交的SQL,并实现了session控制

                2.并提供了jdbc/odbc的fetch和execute功能

COMPILER:

               编译器,负责解析SQL,并从METASTORE那里获取元数据生成执行计划,然后发给DRIVER

              执行计划就是一个DAG(有向无环图)

             组件:

                      1.Parser:将查询语句转变成一个parse tree

                      2.Semantic Analyser:将parse tree变成一个内部的查询表示(依然是基于查询块,而不是operator tree)。同时在这一步也会做语法检查,类型检查和类型隐式转换

                      3.Logical Plan Generator:将内部的查询表示转变成一个逻辑计划(包含一个operator tree),一些operator是关系代数的filter,join等,另一些是hive特定的,用于将逻辑计划变成一系列的map/reduce job,比如reduceSink operator(出现在map-reduce边界);这一步Optimizer也会对查询进行优化,比如map端聚合等

                      4.Query Plan Genertor:将逻辑计划转换成一系列的map-reduce tasks.做法是,通过对operator tree递归遍历,然后拆分成一系列的map/reduce task,然后提交到hadoop进行执行

METASTORE

              元数据存储,存储数仓中的DATABASE,TABLE,PARTITION,COLUMN,SERIALIZERS和DESERIALIZERS

             目的:提供数据抽象和数据发现,如果数据抽象,每次查询的时候,用户都需要提供数据格式,extractors和loaders。metasore的数据在表创建或重建都会更新,类似于传统数据仓库(这些信息存在于配置的数据库中,一般是mysql)

EXECUTION ENGINE

              DRIVER将执行计划发给ENGINE,然后ENGINE与底层交互获取结果后,返回给DRIVER。DRIVER再将数据发送给客户端

              这一个ENGINE设计的挺好的,以前是MAPREDUCE,现在可以是TEZ,spark,以后是否在出现新的框架,谁又说得准?!

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Tez-下一代Hadoop上的执行引擎
数据分析不使用Hadoop的五大理由
Mapreduce与Hive比较
深入浅出数据仓库中SQL性能优化之Hive篇
hive大数据倾斜总结
【大数据微课回顾】杨卓荦:Hive原理及查询优化
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服