- 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 語句】 |