hive执行优化:
1. 使用tez
[code language=”SQL”]
set hive.execution.engine=tez;
[/code]
设置以上属性后,每次hive查询都会利用tez执行任务。
2. 使用ORCFile存储数据
Hive支持ORCFile,
[code language=”SQL”]
CREATE TABLE A_ORC (
customerID int, name string, age int, address string
) STORED AS ORC tblproperties (“orc.compress" = “SNAPPY”);
INSERT INTO TABLE A_ORC SELECT * FROM A;
CREATE TABLE B_ORC (
customerID int, role string, salary float, department string
) STORED AS ORC tblproperties (“orc.compress" = “SNAPPY”);
INSERT INTO TABLE B_ORC SELECT * FROM B;
SELECT A_ORC.customerID, A_ORC.name,
A_ORC.age, A_ORC.address join
B_ORC.role, B_ORC.department, B_ORC.salary
ON A_ORC.customerID=B_ORC.customerID;
[/code]
3. 使用Vectorization
Vectorized查询执行会提高操作性能,例如scans、aggregations、filters和joins,通过一次执行1024行提高性能。
该属性在hive 0.13版本引入,该属性能够提高查询执行的时间。
通过设置以下两个参数:
[code language=”SQL”]
set hive.vectorized.execution.enabled = true;
set hive.vectorized.execution.reduce.enabled = true;
[/code]
4. 基于成本的查询优化
在提交最终的执行之前,hive会对每一次的逻辑和物理执行计划进行优化。这些优化到目前为止还不是基于成本的查询优化。
Cost-based optimization,在查询成本的基础上进行了优化,生成了一些不同的策略:how to order joins, which type of join to perorm, degree of parallelism and others.
[code language=”SQL”]
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
[/code]
5. Write goog SQL
例如:
[code language=”SQL”]
CREATE TABLE clicks (
timestamp date, sessionID string, url string, source_ip string
) STORED as ORC tblproperties (“orc.compress” = “SNAPPY”);
[/code]
[code language=”SQL”]
SELECT clicks.* FROM clicks inner join
(select sessionID, max(timestamp) as max_ts from clicks
group by sessionID) latest
ON clicks.sessionID = latest.sessionID and
clicks.timestamp = latest.max_ts;
[/code]
[code language=”SQL”]
SELECT * FROM
(SELECT *, RANK() over (partition by sessionID,
order by timestamp desc) as rank
FROM clicks) ranked_clicks
WHERE ranked_clicks.rank=1;
[/code]
相关推荐
Hive思维导图之Hive优化
HIVE优化实战分享 大数据存储方案 很好的参考文档
hive优化总结 Hive优化总结是Hive性能优化的总结,涉及HIVE的参数设置、HQL语言的写法、JOIN操作的优化、MapReduce操作的优化、列裁剪、分区裁剪等多个方面。 1. 配置文件优化 Hive的配置文件hive-site.xml是Hive...
作为企业Hadoop应用的核心产品,Hive承载着FaceBook、淘宝等大佬 95%... 拥有1万多个Hive作业的大电商如何进行Hive优化的?本系列课结合企业实战和场景从作业架构层面、Hql(Hive sql)语法层面、Hive参数层面依次讲述。
- **利用Hive对UNION ALL的优化**:Hive优化非嵌套的UNION ALL查询,但嵌套查询不受此优化影响。 5. **Hadoop通用关联实现**: - **关联通过二次排序实现**:关联列作为分区键,关联列和其他列组合形成排序的组键...
### 工作总结:Hive优化 在大数据处理领域,Hive作为一种常用的数据仓库工具,其性能优化一直是数据工程师关注的重点。本文将基于提供的“hive优化”文档内容,深入探讨Hive优化的关键策略与实践技巧。 #### 核心...
Hive优化案例、Hive数据处理模式、Hive常见问题与优化、Hive实践 Hive是一种基于Hadoop的数据仓库工具,用于对大规模数据进行处理和分析。在大数据时代,Hive的应用非常广泛,本文将从Hive优化案例、Hive数据处理...
控制 Map 数有两种方式:减少 Map 数和增加 Map 数。减少 Map 数可以通过合并小文件来实现,而增加 Map 数可以通过控制上一个 Job 的 reducer 数来控制。 1.2、Reduce 数 Reduce 数是 Hive 中另一个非常重要的参数...
Hive 优化方法整理 Hive 优化方法整理是 Hive 数据处理过程中的重要步骤,涉及到 Hive 的类 SQL 语句本身进行调优、参数调优、Hadoop 的 HDFS 参数调优和 Map/Reduce 调优等多个方面。 Hive 类 SQL 语句优化 1. ...
这篇博客主要探讨了Hive的三种启动方式及其用途,这对于我们理解如何有效管理和操作Hive系统至关重要。 1. **独立模式(Standalone Mode)** 在独立模式下,Hive运行在本地模式,不与任何Hadoop集群交互。这种模式...
Hive优化.xmind
为了应对上述问题,可以采取以下几种优化策略: 1. **优化模型设计**:合理的设计能够显著提高查询效率。 2. **解决数据倾斜**:理解数据分布特征,并针对性地进行调整。 3. **减少Job数量**:通过批处理等方式减少...
hive 优化在面试以及工作中经常使用,我整理了一份思维导图供大家学习。
在处理Hive优化的讨论中,关键因素之一是控制Hive任务中的Map数量,这直接影响作业的效率和资源消耗。在Hive中,一个作业是通过分析input目录下的数据文件来创建一个或多个Map任务的,而影响Map数量的主要因素包括...
Hive函数思维导图,便捷整理思路,Hive参数、Hive分桶、Hive视图、Hive运行方式、Hive权限管理、Hive优化
1. **表分区**:分区是Hive优化的基础,通过将大表划分为小的逻辑部分,可以显著提高查询速度。合理的分区策略应基于查询中常用的过滤条件,例如日期、地区等。 2. ** bucketing 和 sorting**:通过bucketing,数据...
然而,随着数据量的不断增长,Hive 的性能优化变得至关重要。本篇文章将深入探讨针对Hive进行优化的一些关键策略。 首先,我们来关注一个常见的问题——慎用 `count(distinct(columnA))` 函数。在处理大数据集时,...
一、Hive优化 1. **元数据优化**:Hive依赖于元数据服务(如MySQL或Derby)来存储表结构和分区信息。确保元数据服务器的性能稳定,可以减少查询解析时间。 2. **分区策略**:通过为大表创建合适的分区,可以显著...