Hive性能优化简介 (顺便介绍了性能工具--ANALYZE)

2024-06-09 23:58

本文主要是介绍Hive性能优化简介 (顺便介绍了性能工具--ANALYZE),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ANALYZE关键字可以收集数值统计信息。

加速查询,直接从统计信息中拿,而不会再启动mapreduce去查询。

用desc命令去查统计信息。

 

 

Hive性能优化包含以下点:

partition table 这是最好的优化,比如用年月日,部门

联合查询,可以先按xx做分区,再按别的做分区

 

bucket table 

经常被join连接查询的这种column上建立bucket

这才能提高查询效率

 

index

每当数据更新时,也要去更新索引,所以维护成本也不小。

实际用的比较少。

 

几种好用的数据类型,

orc ,parquet等,都是基于列的,所以查询性能非常高。

(数据过滤等经常用)

 

数据压缩

第一,可以减少很多空间。

第二,数据shuffle过程中传输速度也会变快。

但是压缩了也要解压,所以也不能压缩的太狠。

有专门的算法叫snappy  用于快速压缩,压缩比适中。

 

data localization

处理引擎放到另一个集群。。。

数据和算法尽量不分离,

比如说我hadoop我把三个拷贝增加到六个拷贝。

(这点不太懂)

 

Avoid small files

为什么使用动态分区会对集群产生不好的影响(产生小文件)?(间接问法)

避免存放太多小文件,原因如下:

1. 因为每个文件都会产生元数据存在namenode的内存。

namenode资源被过多消耗,性能会受到很大影响。

2. 因为block size是比较大的,文件虽然小,但是小文件增大后占的blocksize会越来越多。

解决方法:

1.多进行合并,有一些自动合并功能。没有用hive时,写第三方mapreduce job来合并。

2.多生成大文件的数据源再发给hadoop

 

Hive

可以用TEZ engine来代替mapreduce,它本质是mapreduce的最佳实践。

性能很高。

 

使用Hive LLAP

Hive2.0后 LLAP优化,在后台启动一个长久的线程,不会为每次查询再启动。

数据通过缓存来获得,而不是所有结果都直接去查询。

 

Hive transaction

不必要就不要建立事务,

很消耗资源

除非你有特殊需求。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于Hive性能优化简介 (顺便介绍了性能工具--ANALYZE)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046664

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.