nanyangjx hive_参数调优

#!/bin/bash
#load
#define the date of yesterday
YESTERDAY=date -d '-1 days' +%Y%m%d
TODAY=$(date +"%Y%m%d")

#获取当前小时:
currentHour=date | awk '{print $4}' | awk -F':' '{print $1}'

#define log dir
ACCESS_LOGS_DIR=/opt/datas/access_logs/$YESTERDAY

#define hive home
HIVE_HOME=/opt/cdh5/hive-0.13.1-cdh5.3.6

$HIVE_HOME/bin/hive -e “set parquet.compression=SNAPPY”
#JOIN调优
$HIVE_HOME/bin/hive -e “set hive.auto.convert.join=ture”
$HIVE_HOME/bin/hive -e “set hive.optimize.bucketmapjoin=ture”
$HIVE_HOME/bin/hive -e “set hive.optimize.bucketmapjoin.sortedmerge=ture”
$HIVE_HOME/bin/hive -e “set hive.auto.convert.sortmerge.join.noconditionnaltask=ture”
#并行执行
$HIVE_HOME/bin/hive -e “set hive.exec.parallel=ture”
#JVM设置:
$HIVE_HOME/bin/hive -e “set mapred.job.reuse.jvm.num.tasks=10”
#调整mapper和reduce个数
$HIVE_HOME/bin/hive -e “set mapred.max.split.size=100000000”
$HIVE_HOME/bin/hive -e “set mapred.min.split.size.per.node=100000000”
$HIVE_HOME/bin/hive -e “set mapred.min.split.size.per.rack=100000000”
$HIVE_HOME/bin/hive -e “set hive.exec.reducers.bytes.per.reducer=500000000”
echo ${TODAY} hive configure load successfully!


hive调优参数:
set parquet.compression=SNAPPY;

JOIN调优:
set hive.auto.convert.join=ture;
set hive.optimize.bucketmapjoin=ture;
set hive.optimize.bucketmapjoin.sortedmerge=ture;
set hive.auto.convert.sortmerge.join.noconditionnaltask=ture;

并行执行:
set hive.exec.parallel=ture;
JVM设置:
set mapred.job.reuse.jvm.num.tasks=10;

设置同时运行的线程数,根据集群资源设置,默认是8
set hive.exec.parallel.thread.number=8

调整mapper和reduce个数:
1.合并小文件,减少map数量:
set mapred.max.split.size=100000000; – 决定每个map处理的最大的文件大小,单位为B
set mapred.min.split.size.per.node=100000000; – 节点中可以处理的最小的文件大小
set mapred.min.split.size.per.rack=100000000; – 机架中可以处理的最小的文件大小
set mapred.reduce.tasks=10; 或者 set hive.exec.reducers.bytes.per.reducer=500000000; (500M)
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

set hive.exec.dynamic.partition=true// 使用动态分区
set hive.exec.dynamic.partition.mode=nonstrick//无限制模式 如果模式是stric,则必须有一个静态分区,且放在最前面 set hive.exec.max.dynamic.partitions.pernode=10000;//每个节点生成动态分区的最大个数
set hive.exec.max.created.files=150000;//一个任务最多可以创建的文件数目
set dfs.datanode.max.xcievers=8192;//限定一次最多打开的文件数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值