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

相关文章

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2