You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EMR运行spark-shell与spark-submit出现Unrecognized VM option错误如何排查

AWS EMR Spark JVM参数报错排查方案

你遇到的报错内容如下:

Unrecognized VM option 'CMSClassUnloaadingEnabled'
Did you mean '(+/-)CMSClassUnloadingEnabled'?
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

该报错本质是JVM启动时加载了无法识别的参数,按以下步骤逐一排查即可:

1 排查参数拼写错误

  • 报错提示的参数CMSClassUnloaadingEnabled存在拼写错误,正确参数名为CMSClassUnloadingEnabled,多写了一个字母a。
  • 排查范围包括:
    • 当前操作节点的环境变量:SPARK_OPTS、SPARK_DAEMON_JAVA_OPTS、JAVA_OPTS
    • Spark配置文件:spark-defaults.conf中的spark.driver.extraJavaOptions、spark.executor.extraJavaOptions项
    • 提交任务时手动加的--conf参数指定的JVM配置

2 排查JDK版本兼容性问题

  • 确认参数拼写无误的前提下,该报错由JDK版本不兼容导致:CMS垃圾回收器在JDK9被标记为废弃,JDK14及以上版本完全移除所有CMS相关参数,配置后会直接报错无法启动JVM。
  • 排查方法:在集群节点执行java -version查看当前JDK版本,AWS EMR 6.x部分版本默认使用JDK11,EMR7.x默认使用JDK17,均已不支持CMS相关参数。
  • 对应解决方法:
    • 如需保留原有CMS配置,将集群JDK版本切换为JDK8即可正常运行
    • 如需使用高版本JDK,删除所有CMS相关JVM参数,替换为G1、ZGC等高版本JDK支持的回收器参数即可

3 排查集群全局配置注入

  • 若上述两个位置都没有找到相关参数,检查EMR集群的bootstrap启动脚本、控制台软件配置项中的全局自定义参数,是否有强制注入的CMS相关JVM配置,这类全局注入的参数会覆盖本地的Spark默认配置。

内容的提问来源于stack exchange,提问作者Learn Hadoop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:45:06