hive參數設置


 

 1 -- 設置hive的計算引擎為spark
 2 set hive.execution.engine=spark;
 3 
 4 -- 修復分區
 5 set hive.msck.path.validation=ignore;
 6 msck repair table sub_ladm_app_click_day_cnt;
 7 
 8 -- 打印表頭
 9 set hive.cli.print.header=true;
10 set hive.cli.print.row.to.vertical=true;
11 set hive.cli.print.row.to.vertical.num=1;
12  
13 -- 顯示當前數據庫
14 set hive.cli.print.current.db=true;

 

1 // 開啟任務並行執行
2 set hive.exec.parallel=true;
3 // 同一個sql允許並行任務的最大線程數
4 set hive.exec.parallel.thread.number=8;

 

 1 -- 1、合並輸入文件
 2 -- 每個Map最大輸入大小
 3 set mapred.max.split.size=128000000;
 4 -- 一個節點上split的至少的大小 
 5 set mapred.min.split.size.per.node=100000000;
 6 -- 一個交換機下split的至少的大小
 7 set mapred.min.split.size.per.rack=100000000;
 8 -- 執行Map前進行小文件合並
 9 set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
10 
11 -- 2、合並輸出文件
12 -- 在Map-only的任務結束時合並小文件
13 set hive.merge.mapfiles=true;
14 -- 在Map-Reduce的任務結束時合並小文件
15 set hive.merge.mapredfiles = true;
16 -- 合並文件的大小
17 set hive.merge.size.per.task = 134217728;
18 -- 當輸出文件的平均大小小於該值時,啟動一個獨立的map-reduce任務進行文件merge
19 set hive.merge.smallfiles.avgsize=16000000;

 

 1 -- pa
 2 set hive.exec.parallel = true;
 3 set hive.exec.parallel.thread.number=50;
 4 
 5 set mapred.reduce.tasks=999;
 6 set hive.merge.smallfiles.avgsize=100000000;
 7 set mapred.combine.input.format.local.only=false;
 8 
 9 -- 控制hive任務的reduce數
10 set hive.exec.reducers.bytes.per.reducer=200000000;
11 set hive.exec.reducers.max=150;
12 set hive.exec.compress.intermediate=true;
13 
14 -- map執行前合並小文件,減少map數
15 set mapred.max.split.size=256000000;
16 set mapred.min.split.size=256000000;
17 set mapred.min.split.size.per.node=100000000;
18 set mapred.min.split.size.per.rack=100000000;
19 set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
20 
21 set hive.merge.mapredfiles = true;
22 set hive.merge.smallfiles.avgsize=100000000;
23 set mapred.combine.input.format.local.only=false;
24 
25 set hive.map.aggr=true;
26 set hive.groupby.skewindata=true;
27 
28 set mapreduce.reduce.memory.mb=6144;
29 set mapreduce.reduce.java.opts=-Xms2000m -Xmx8192m;
30 set mapred.compress.map.output=true;
31 set Hive.optimize.skewjoin = true;
32 set Hive.skewjoin.key=10000000;
33 set hive.auto.convert.join=true;
34 set hive.mapjoin.smalltable.filesize=25000000;
35 
36 set io.sort.spill.percent=0.6;
37 set mapred.job.shuffle.input.buffer.percent=0.2 ;
38 set mapred.job.shuffle.merge.percent=0.6;
39 
40 set hive.orc.compute.splits.num.threads=50;
41 
42 -- 修改reduce任務從map完成80%后開始執行
43 set mapreduce.job.reduce.slowstart.completedmaps=0.8
44 
45 -- 加大內存
46 set mapreduce.map.memory.mb=16384;
47 set mapreduce.map.java.opts=-Xmx13106M;
48 set mapred.map.child.java.opts=-Xmx13106M;
49 set mapreduce.reduce.memory.mb=16384;
50 set mapreduce.reduce.java.opts=-Xmx13106M;--reduce.memory*0.8
51 set mapreduce.task.io.sort.mb=512

 

1 -- 從本地文件加載數據:
2 LOAD DATA LOCAL INPATH '/home/hadoop/input/ncdc/micro-tab/sample.txt' OVERWRITE INTO TABLE records;
3 load data local inpath '/home/hive/partitions/files' into table logs partition (dt='2017-08-01',country='GB');

 

1 -- 函數幫助
2 show functions;
3 desc function to_date;
4 desc function extended to_date;

 

1 -- 數組、map、結構
2 select col1[0],col2['b'],col3.c from complex;

 

1 -- 導出orc文件
2 hive --orcfiledump /user/hive/warehouse/sx_360_safe.db/user_reg_info_init2

 

1 -- 導出hive表數據
2 insert overwrite local directory '/tmp/tmp_20170830/app_210_s3_1016' row format delimited fields terminated by ',' select * from app_210_s3_1016;
3 cd /tmp/tmp_20170830/sub_ladm_exc_app_210_s3_1016
4 cat * > /tmp/tmp_20170830/result/app_210_s3_1016.csv
5 cd /tmp/tmp_20170830/result/
6 gzip app_210_s3_1016.csv

 

1 -- hive生成統一ID
2 select regexp_replace(reflect("java.util.UUID", "randomUUID"), "-", "");

 

1 -- 行轉列功能
2 -- 打印列名
3 set hive.cli.print.header=true;
4 -- 開啟行轉列功能, 前提必須開啟打印列名功能
5 set hive.cli.print.row.to.vertical=true;
6 -- 設置每行顯示的列數
7 set hive.cli.print.row.to.vertical.num=1;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM