数仓工具—Hive执行引擎(18)

本文介绍了Hive的两种执行引擎——Tez和Spark。Tez基于DAG,提供比MR更高的效率,文章详细阐述了Tez的安装配置过程。而对于Spark,从1.1版开始,Hive支持使用Spark作为执行引擎,但要注意版本匹配及避免使用集成Hive的Spark jar。文章还提供了配置和使用Spark作为Hive执行引擎的步骤。

Hive 执行引擎

前面我们已经搭建起了Hive 的基础环境,每次当你使用客户端的时候,你就会看到这样的一串日志,提示我们不要再使用MR 去执行hive sql 了

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

hive-execution

Tez

tez 是基于hive 之上,可以将sql翻译解析成DAG计算的引擎。基于DAG 与mr 架构本身的优缺点,tez 本身经过测试一般小任务在hive mr 的2-3倍速度左右,大任务7-10倍左右,根据情况不同可能不一样。

Tez 安装配置

因为我用的是idea ,所以我先将源代码导入到了idea 中去,代码的git 地址https://github.com/apache/tez

然后使用hadoop version 看了一下我的版本,调整了一下po

### 关于离线Hive 的架构 #### Hive 架构概述 Hive 是专为处理大规模结构化据设计的一种工具,其架构旨在简化基于 Hadoop 生态系统的据分析工作。通过提供类似于 SQL 查询语言(HQL),使得熟悉关系型据库管理系统(RDBMS)的开发者能够更高效地编写查询语句来分析存储在分布式文件系统中的海量据集[^1]。 #### Hive 主要组件解析 - **用户接口(User Interface)** 包括CLI(Command Line Interface), JDBC/ODBC, 和 Web GUI等多种方式供用户提交SQL/HQL命令给Hive服务端执行。 - **编译器(Compiler)** 负责接收来自UI或其他API传入的查询请求,并将其转换成可以在MapReduce框架内运行的任务序列;同时负责优化这些任务以提高性能表现。 - **元据存储(MetaStore)** 存储有关表定义的信息(如列名、类型等),以及分区详情和其他辅助信息。Metastore可以部署在一个独立的关系型据库实例中以便更好地管理和维护。 - **执行引擎(Execution Engine)** 接收由编译器产生的逻辑计划并映射至物理层面的操作符树,最终生成一系列可被执行的具体动作,通常会转化为MapReduce作业或者其他计算模型下的任务形式去完成实际的据处理过程。 ```mermaid graph TD; A[Hive Architecture] --> B[User Interfaces]; A --> C[Compiler]; A --> D[MetaStore]; A --> E[Execution Engine]; B -->|Includes| F[Cli], G[JDBC/ODBC], H[Web UI]; C --> I[Query Parsing & Optimization]; D --> J[Table Definitions and Partitions Info]; E --> K[Task Execution via MapReduce or Tez etc.]; ``` 此架构图展示了 Hive 各主要组成部分之间的交互流程及其功能定位,有助于理解整个系统的工作原理和内部机制。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不二人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值