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;