Hive配置参数解释

Tez引擎相关配置参数如下:

hive-site.xml:
1. hive.exec.parallel:Hive并发执行,true表示并发,即开启作业并行。若为true一个sql语句中分解的多个job没有顺序关系时会并发执行,有顺序关系时会按顺序执行,资源充足时建议开启。默认false。
2. Hive.exec.parallel.thread.num:默认8,最多并行的作业数量,即1个sql最多允许8个mr或tez作业并行。
3. hive.execution.engine:Hive引擎,默认mr,一般设为tez。
4. hive.tez.cpu.vcores:设置小于1时,将被mapreduce.map.cpu.vcores替代。每个容器运行所需的vcpu个数。
5. hive.tez.auto.reducer.parallelism:配置是否开启作业自动调节在Reduce阶段的任务并行度,一般开启。
6. hive.optimize.countdistinct:去重并计数的作业会分成两个作业来处理,为了减缓sql数据倾斜。
7. hive.tez.container.size:不小于或者是yarn.scheduler.minimum-allocation-mb的倍数。默认值-1猜测和最小配置内存一直,一般建议是该最小值的1倍或2倍。
8. tez.task.resource.memory.mb:TEZ容器中已启动任务使用的内存量。通常,此值是在DAG中设置的,默认1024MB。
9. hive.tez.java.ops:设置Container的jvm参数,默认值(Hortonworks建议):–server –Djava.net.preferIPv4Stack=true–XX:NewRatio=8 –XX:+UseNUMA –XX:UseG1G(默认80%*hive.tez.container.size),在hive 2.x的官方文档中没有找到这个参数,网上找到有这个值。
10. hive.auto.convert.join.noconditionaltask:是否将多个mapjoin合并为一个,默认true。建议默认值。
11. hive.auto.convert.join.noconditionaltask.size:这个参数使用的前提是hive.auto.convert.join.noconditionaltask值为true,多个mapjoin转换为1个时,所有小表的文件大小总和小于这个值,这个值只是限制输入的表文件的大小,并不代表实际mapjoin时hashtable的大小。默认值:10000000(10MB),建议值:1/3* hive.tez.container.size。该参数取代了旧版本的hive.smalltable.filesize or hive.mapjoin.smalltable.filesize。
12. hive.vectorized.execution.enabled:是否启用向量化查询,默认false关闭,建议开启。

tez-site.xml:
13. tez.am.resource.memory.mb:集群中每个Tez作业对应的ApplicationMaster占用内存大小,默认1024MB。
14. tez.container.max.java.heap.fraction:基于yarn提供的内存,分配给java进程的百分比,默认是0.8,一般不用变。
15. tez.runtime.unordered.output.buffer.size-mb:如果不直接写入磁盘,使用的缓冲区大小,默认100MB,建议为0.1*container.size
16. tez.am.launch.cmd-opts:tez-site.xml,设置AM的jvm选项,启动TEZ任务进程期间提供的命令行选项。默认值:-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA -XX:+UseParallelGC(用于GC,默认的大小:80%*tez.am.resource.memory.mb)。建议:不要在这些启动选项中设置任何xmx或xms,以便tez可以自动确定它们。
17. tez.runtime.io.sort.mb:设置输出排序内存大小,默认100,建议:40%*hive.tez.container.size,一般不超过2G。
18. tez.runtime.unordered.output.buffer.size-mb:如果不直接写入磁盘,使用的缓冲区大小,默认100,建议:10%* hive.tez.container.size。
19. tez.am.container.reuse.enabled:容器(Container)重用,默认true,建议默认。

mapred-site.xml:
20. mapreduce.map.cpu.vcores:默认1,每个map任务的cpu数量。
21. mapreduce.reduce.cpu.vcores:默认1,每个reduce任务的cpu个数。对tez不起作用。

yarn-site.xml:
22. yarn.nodemanager.resource.memory-mb:nm的可分配的内存总大小,一般为物理内存的80%左右
23. yarn.scheduler.minimum-allocation-mb:container最小内存,根据实际,总32,2GB
24. yarn.scheduler.maximum-allocation-mb:container最大内存,总32,24GB
25. yarn.nodemanager.resource.percentage-physical-cpu-limit:管理的所有Container使用CPU的阈值。默认100%。
26. yarn.nodemanager.resource.cpu-vcores:nm能为container分配的最多cpu个数。
27. yarn.scheduler.minimum-allocation-vcores:container最小cpu个数,一般1个。yarn分配每个container的最小cpu数,默认-1自动。对tez不起作用。
28. yarn.scheduler.maximum-allocation-vcores:container最多cpu个数,一般为nodemanager.resource.cpu-vcores的值
29. yarn.nodemanager.linux-container-executor.cgroups.strict-resource-usage:对Container的CPU使用资源是否严格按照被分配的比例来进行控制。默认是false,即Container可以使用空闲的CPU。

平台报错与解决记录:

Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask. Exception when loading 3 in table t_his_relate with loadPath=hdfs://Zicontd/user/hive/warehouse/relate/t_his_relate/province=13/city=1309/district=130923/hospital=3b7001/.hive-staging_hive_2021-05-28_11-05-14_070_1400004525137545775-3/-ext-10000
解决方法:
30. 尝试修改set hive.insert.into.multilevel.dirs=true;原始为false,此方法未解决。
31. 分区中包含中文到值的,需要解决编码的问题,暂时将包含中文的分区删了,减少了一级分区,此方法解决。

运行hive sql程序时,报错:java.lang.OutOfMemoryError: Java heap space:
32. set hive.tez.container.size=8192 原值是4096,在DataGrip中先运行该语句,然后运行sql成功了。
33. hive.tez.java.opts=-Xmx1700m # Java内存设置,该值不建议直接设置,而是调整tez.container.max.java.heap.fraction参数(默认0.8),建议值:tez.container.max.java.heap.fraction*hive.tez.container.size。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值