- hive优化: 表设计, mr作业
linux系统下, 在用户当前目录创建配置文件~/.hiverc, 加入配置参数
#显示头,db:
set hive.cli.print.current.db=true ;
set hive.cli.print.header=true ;
part1: 本地模式
#本地模式:
set hive.exec.mode.local.auto=true ;
set hive.exec.mode.local.auto.input.files.max=10 ; #[最大文件数]
set hive.exec.reducers.bytes.per.reducer=134217728 ; #[默认128MB]
part2: 使用压缩+并行处理+查询优化
#使用压缩: 输出文件压缩
SET hive.exec.compress.output=true ;
set mapred.output.compression.codec='类名' ;
SET io.seqfile.compression.type=BLOCK ;
set hive.exec.compress.intermediate=true ;#[中间压缩]
#并行处理 +jvm重用
set hive.exec.parallel=true ;
set hive.exec.parallel.thread.number=8 ; #[默认]
set mapred.job.reuse.jvm.num.tasks=1 ;#[默认]
#join查询优化: map端join[大表+小表]
#0.7之前:
set hive.auto.convert.join=true ;
#0.7之后:
set hive.mapjoin.smalltable.filesize=大小 ;
set hive.auto.convert.join=true ;
#热点数据优化:
set hive.groupby.skewindata=true ;
set hive.optimize.skewjoin=true ;
part3 : 设计优化与分析
表设计优化 | 分区表+ 桶表 |
存储优化 | 列式存储(orc, rcfile, parquet)行式存储(sequencefile) |
分区计算 | analyze【表 [分区] compute statics】 |
跟踪job | explain 【sql 语句】 |