博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive Job层面的优化
阅读量:4299 次
发布时间:2019-05-27

本文共 795 字,大约阅读时间需要 2 分钟。

1.  Run in Local Mode

数据处理比较小的时候就运行本地模式,

不需要分布式。

把阀值这三个设置改一下就是本地模式了。

 

2.  JVM Reuse

Hadoop每当得到一个map或者reduce任务的时候,

就会启动一个新的JVM。

处理job时间比较短,但是启动JVM太费时了。

配置成JVM Reuse可以大大优化

 

3. Parallel Exectution 并行执行

这个很常用的,默认是关闭的。

hive很多阶段是可以并行执行的,

并不是每个阶段都互相依赖,

如果集群中资源利用效率不高,可以考虑开启此选项。

 

4. 查询优化

(1)map side join 设置为enable

(2)bucket map side join 也设置为enable

以上两种都是基于bucket来优化,务必开启。

(3)skewjoin也可以开启为true

有数据倾斜时,就重新分配。

(4)CBO(一个很棒的执行优化器)

set hive.cbo.enable=true;  开启CBO

然后你可能就要收集状态,所以status也设置为true。(见下图)

这几个都要开启。

基于cost的优化

(5)vectorized

基于向量的优化,和基于cost的优化不冲突

一般这两个选项也是开启的,默认是开启的。

作用是hive做数据扫描的时候会按照1024rows来批量扫描,这样性能大大提高。

 

其他优化:

CTE:code尽量用CTE,这样好理解。

Common Table Expression

 

临时表可以共用,省去很多重复步骤。

 

windows functions比group by好多了,

这样你可以用简单的query实现复杂的功能。

 

总结:

了解了事务的概念

会使用增删改查,演示了一个merge的例子

了解了HPLSQL

了解了性能优化的一些技巧

从设计角度和从job角度

 

 

 

 

 

转载地址:http://yuvws.baihongyu.com/

你可能感兴趣的文章
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>
NoC片上网络
查看>>
开源SoC整理
查看>>
【2020-3-21】Mac安装Homebrew慢,解决办法
查看>>
influxdb 命令行输出时间为 yyyy-MM-dd HH:mm:ss(年月日时分秒)的方法
查看>>
已知子网掩码,确定ip地址范围
查看>>
判断时间或者数字是否连续
查看>>
docker-daemon.json各配置详解
查看>>
Mac 下docker路径 /var/lib/docker不存在问题
查看>>
Docker(一)使用阿里云容器镜像服务
查看>>
Docker(二) 基础命令
查看>>
Docker(三) 构建镜像
查看>>
Spring 全家桶注解一览
查看>>
JDK1.8-Stream API使用
查看>>
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
查看>>
vue中的状态管理 vuex store
查看>>
Maven之阿里云镜像仓库配置
查看>>