最近在測將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成為正式的垃圾回收器。