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

MapR集群Java17环境下Spark启动失败求助:InaccessibleObjectException错误

解决Spark在Java 17 MapR集群启动失败的方案

问题根源

这个报错是Java 17的模块系统(JPMS)权限限制导致的:Spark(或MapR集成的Spark组件)尝试通过反射调用java.lang.ClassLoader.defineClass方法,但java.base模块默认未向未命名模块开放java.lang包的反射访问权限,因此触发了该异常。

具体解决步骤

  • 修改Spark的JVM启动参数,添加模块权限开放配置:
    找到Spark的配置文件(比如spark-env.sh或spark-defaults.conf),按对应文件类型添加参数:
    • 若使用spark-env.sh,直接设置:
      SPARK_DRIVER_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
      SPARK_EXECUTOR_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
      
    • 若使用spark-defaults.conf,添加:
      spark.driver.extraJavaOptions --add-opens java.base/java.lang=ALL-UNNAMED
      spark.executor.extraJavaOptions --add-opens java.base/java.lang=ALL-UNNAMED
      
  • 验证配置生效:
    重启Spark服务,查看启动日志中的JVM参数,确认上述--add-opens参数已被正确加载。
  • 可选:检查版本兼容性
    如果使用的Spark版本较旧,可能本身不支持Java 17,建议升级到Spark 3.3及以上版本(官方从该版本开始正式支持Java 17)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:33:10