Hive集成Tez引擎跑任务出现的问题(Java heap space问题)
生活随笔
收集整理的這篇文章主要介紹了
Hive集成Tez引擎跑任务出现的问题(Java heap space问题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題1:Hive集成Tez引擎跑任務出現異常:TaskAttempt 3 failed, info=[Error: Error while running task ( failure ) : attempt_1597977573448_0002_1_16_000000_3:java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space
看yarn 的job平臺是success的,所以想到Tez的內存設置問題,因為Tez引擎是純內存操作,所以對內存大小肯定有要求。所以查看下tez的設置情況:
查看了
以下是調優參數這是:
問題2:如果報以下問題:
Status: Failed Vertex's TaskResource is beyond the cluster container capability,Vertex=vertex_1597977573448_0003_1_00 [Map 9], Requested TaskResource=<memory:4096, vCores:1>, Cluster MaxContainerCapability=<memory:2048, vCores:2> FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex's TaskResource is beyond the cluster container capability,Vertex=vertex_1597977573448_0003_1_00 [Map 9], Requested TaskResource=<memory:4096, vCores:1>, Cluster MaxContainerCapability=<memory:2048, vCores:2>則繼續調整tez內存大小,不能超過yarn的單個任務的最大設置。
執行ok了
附錄:
一、AM、Container大小設置1、tez.am.resource.memory.mb #設置 tez AM容器內存默認值:1024 配置文件:tez-site.xml 建議:不小于或者等于yarn.scheduler.minimum-allocation-mb值。2、hive.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,一般不超過2G2、hive.auto.convert.join.noconditionaltask #是否將多個mapjoin合并為一個 默認值:true 建議使用默認值。 配置文件:hive-site.xml3、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.xml5、tez.am.container.reuse.enabled #容器重用 默認值:true 配置文件:tez-ste.xml總結
以上是生活随笔為你收集整理的Hive集成Tez引擎跑任务出现的问题(Java heap space问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡不激活2个月作废吗
- 下一篇: 京东数科冲刺科创板IPO 拟募资200