Hive常用命令

1.运行环境

内存

 设置Mapper内存:set mapreduce.map.memory.mb = <4096>;
 设置Reudcer内存:set mapreduce.reduce.memory.mb = <8192>;

小文件

设置map_only任务合并小文件:  set hive.merge.mapfiles = true;
设置mapreduce任务合并小文件:set hive.merge.mapredfiles = true;
设置合并后文件大小:set hive.merge.size.per.task = 64000000;
设置输入合并小文件格式:set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

文件处理逻辑复杂

 设置每个mapper处理文件大小:set  mapred.max.split.size=64000000;

动态分区

开启动态分区:set hive.exec.dynamic.partition=true;
开启动态分区非严格模式:set hive.exec.dynamic.partition.mode=nonstrict;
设置动态分区最大分区数:set hive.exec.max.dynamic.partitions=2000;

JVM重用

适用于mapper数量过于多的场景:set mapred.job.reuse.jvm.num.tasks=<number>;

并行执行

开启并行执行:set hive.exec.parallel=true;
设置并行执行度:set hive.exec.parallel.thread.number=<number>;

数据倾斜

开启在mapper端提前合并(group by配合使用效果更加):set hive.map.aggr=true
通常数据倾斜后优先优化sql,从业务场景触发,靠参数通常是不能解决问题

2.表相关命令

添加字段

如果不是分区表:
alter table <表名> add columns (字段名 字段类型 comment ’字段注释‘);
如果是分区表:
alter table <表名> add columns (字段名 字段类型 comment ’字段注释‘ )  cascade;

修改表注释

alter table  <表名> set tblproperties('comment' = '新注释');

修改表名

alter table <表名> rename to <新表名>;

修改字段名

alter table <表名> change column  <原字段名> <新字段名> <新字段类型> comment '注释‘;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值