• hive tez调优(3)


    根据。方案最右侧一栏是一个8G VM的分配方案,方案预留1-2G的内存给操作系统,分配4G给Yarn/MapReduce,当然也包括了HIVE,剩余的2-3G是在需要使用HBase时预留给HBase的。

    内存调优

    一、AM、Container大小设置
    1
    tez.am.resource.memory.mb  #设置 tez AM容器内存
      默认值:1024  
      配置文件:tez-site.xml
      建议:
    不小于或者等于yarn.scheduler.minimum-allocation-mb值。
      
    2hive.tez.container.size  #设置 tez container内存
      默认值:-1
      默认情况下,Tez将生成一个mapper大小的容器。这可以用来覆盖默认值。
      配置文件:hive-site-xml
      建议:
    不小于或者是yarn.scheduler.minimum-allocation-mb的倍数
      
    二、AM、Container JVM参数设置
    1、tez.am.launch.cmd-opts  #设置 AM jvm,启动TEZ任务进程期间提供的命令行选项。
      默认值:-XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA -XX:+UseParallelGC(用于GC),默认的大小:80%*tez.am.resource.memory.mb
      配置文件:tez-site.xml
      建议:不要在这些启动选项中设置任何xmx或xms,以便tez可以自动确定它们。
      

    2、
    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的官方文档中没有找到这个参数。看有些博客里面有这个值。
      配置文件:hive-site.xml

    3、tez.container.max.java.heap.fraction  #设置task/AM占用jvm内存大小的比例。
      默认值:0.8
      配置文件:tez-site.xml
      说明:这个值按具体需要调整,当内存不足时,一般都要调小。

    三、Hive内存Map Join参数设置
    1、tez.runtime.io.sort.mb  #设置输出排序内存大小
      默认值:100
      配置文件:
    tez-site.xml
      建议:40%*hive.tez.container.size,一般不超过2G
    2、
    hive.auto.convert.join.noconditionaltask  #是否将多个mapjoin合并为一个
      默认值:true
      建议使用默认值。
      配置文件:hive-site.xml
    3、hive.auto.convert.join.noconditionaltask.size
      默认值:10000000  (10M)
      说明:这个参数使用的前提是
    hive.auto.convert.join.noconditionaltask值为true,多个mapjoin转换为1个时,所有小表的文件大小总和小于这个值,这个值只是限制输入的表文件的大小,并不代表实际mapjoin时hashtable的大小。 建议值:1/3* hive.tez.container.size
      
    配置文件:hive-site.xml
    4、tez.runtime.unordered.output.buffer.size-mb  #如果不直接写入磁盘,使用的缓冲区大小
      默认值:100M
     建议:10%* hive.tez.container.size
      配置文件:tez-site.xml

    5、tez.am.container.reuse.enabled  #容器重用
      默认值:true
      配置文件:tez-ste.xml

  • 相关阅读:
    在jQuery中Ajax的Post提交中文乱码的解决方案
    mysql 日期时间型的按日期分组
    mysql 逗号分隔的id转为逗号分隔的名称
    阿米在日本工作生活趣事(2)
    阿米在日本工作生活趣事(1)
    com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
    File exists.If no other git process is currently running,
    带小数点的String 转int java.lang.Double cannot be cast to java.lang.Integer
    Jboss解决只能通过localhost访问而不能使用IP访问项目的问题
    This method accesses the value of a Map entry, using a key that was retrieved from a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the Map.get(key) look
  • 原文地址:https://www.cnblogs.com/yjt1993/p/11050791.html
Copyright © 2020-2023  润新知