最近在测将Hadoop3.2.1的yarn依赖的JDK由JDK1.8替换为JDK15,遇到以下问题,在此进行记录,希望能帮助到遇到同样问题的同学。
问题描述:
将yarn集群依赖的JDK由1.8换成JDK15后,提交任务时,yarn日志报Unrecognized VM option 'UseParNewGC';Error:Could not create the Java Virtual Machine错误,具体信息如下:
问题原因:
-XX:+UseParNewGC参数在JDK9中已废弃,在JDK10中被移除了,所以JDK15不能应用-XX:+UseParNewGC了。
解决方法:
在JDK15中ZGC参数配置为:-XX:+UseZGC
备注:
1)Yarn运行任务时该GC参数配置在客户端,如果运行的MapReduce任务,则需要修改mapred-site.xml中配置的mapreduce.map.java.opts和mapreduce.reduce.java.opts配置项中设置的GC参数。
2)ZGC是Java 11引入的新的垃圾收集器,它是一个重新设计的并发的垃圾回收器,可以极大的提升GC的性能。支持任意堆大小而保持稳定的低延迟(10ms以内),经过了多个实验阶段,在JDK15中ZGC成为正式的垃圾回收器。