大数据面试

hive相关知识点

2019-07-23  本文已影响0人  evanzh7
  1. hive架构
    组件:

    1. meta store
    2. cli client
    3. jdbc client
    4. driver
    5. sql parser解析器
    6. physical plan编译器
    7. query optimizer优化器
    8. execution执行器
  2. hive语句调优常见参数

  3. 各种sql语句hvie如何实现
    3.1 join的实现原理
    Map:

1、以 JOIN ON 条件中的列作为 Key,如果有多个列,则 Key 是这些列的组合

2、以 JOIN 之后所关心的列作为 Value,当有多个列时,Value 是这些列的组合。在 Value 中还会包含表的 Tag 信息,用于标明此 Value 对应于哪个表

3、按照 Key 进行排序

Shuffle:

1、根据 Key 的值进行 Hash,并将 Key/Value 对按照 Hash 值推至不同对 Reduce 中

Reduce:

1、 Reducer 根据 Key 值进行 Join 操作,并且通过 Tag 来识别不同的表中的数据
3.2 group by的实现原理

3.3 distinct的实现原理

  1. sql转化为mapreduce的过程
    • Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree
    • 遍历AST Tree,抽象出查询的基本组成单元QueryBlock
    • 遍历QueryBlock,翻译为执行操作树OperatorTree
    • 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量
    • 遍历OperatorTree,翻译为MapReduce任务
    • 物理层优化器进行MapReduce任务的变换,生成最终的执行计划
  2. Hive 编译器的工作职责
    (1)Parser:将 HQL 语句转换成抽象语法树(AST:Abstract Syntax Tree)

(2)Semantic Analyzer:将抽象语法树转换成查询块

(3)Logic Plan Generator:将查询块转换成逻辑查询计划

(4)Logic Optimizer:重写逻辑查询计划,优化逻辑执行计划

(5)Physical Plan Gernerator:将逻辑计划转化成物理计划(MapReduce Jobs)

(6)Physical Optimizer:选择最佳的 Join 策略,优化物理执行计划

上一篇 下一篇

猜你喜欢

热点阅读