设置hive的执行引擎_Hive鲜为人知的宝石Hooks

1.hive概述

Hive为Hadoop提供了一个SQL接口。Hive可以被认为是一种编译器,它将SQL(严格来说,Hive查询语言 - HQL,SQL的一种变体)转换为一组Mapreduce / Tez / Spark作业。因此,Hive非常有助于非程序员使用Hadoop基础架构。原来,Hive只有一个引擎,即MapReduce。但是在最新版本中,Hive还支持Spark和Tez作为执行引擎。这使得Hive成为探索性数据分析的绝佳工具。

基于mapreduce的hive,整个架构图如下:

cf051072a4806a88884514b88e258999.png

driver - 接收查询的组件。该组件实现了会话句柄的概念,并提供了在JDBC / ODBC接口上的执行和获取数据的api模型。

编译器 - 解析查询的组件,对不同的查询块和查询表达式进行语义分析,最终通过从metastore获取表和分区的信息生成执行计划。

Metastore - 存储仓库中各种表和分区的所有结构信息的组件,包括列和列类型信息,读取和写入数据所需的序列化程序和反序列化程序以及存储数据的相应HDFS文件。

执行引擎 - 执行编译器创建的执行计划的组件。该计划是一个stages的DAG。执行引擎管理计划的这些不同阶段之间的依赖关系,并在适当的系统组件上执行这些阶段。

2.什么是hook

通常,Hook是一种在处理过程中拦截事件,消息或函数调用的机制。Hive hooks是绑定到了Hive内部的工作机制,无需重新编译Hive。从这个意义上讲,提供了使用hive扩展和集成外部功能的能力。换句话说,Hive hadoop可用于在查询处理的各个步骤中运行/注入一些代码。根据钩子的类型,它可以在查询处理期间的不同点调用:

Pre-execution hooks-在执行引擎执行查询之前,将调用Pre-execution hooks。请注意,这个目的是此时已经为Hive准备了一个优化的查询计划。

Post-execution hooks -在查询执行完成之后以及将结果返回给用户之前,将调用Post-execution hooks 。

Failure-execution hooks -当查询执行失败时,将调用Failure-execution hooks 。

Pre-driver-run 和post-driver

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值