Amazon Linux 2安装java-1.8.0-openjdk-devel如何配置稳定JAVA_HOME
稳定版JAVA_HOME路径选择方案
直接用系统自带的固定软链接,完全适配yum升级场景
Amazon Linux 2 属于RHEL系yum管理体系,安装完java-1.8.0-openjdk-devel.x86_64后,系统会自动创建不带补丁版本号的固定软链接,根本不需要配置带完整版本标识的物理路径,直接用这个就行:/usr/lib/jvm/java-1.8.0-openjdk
这个路径的特性刚好匹配你的需求:
- 是系统层面固化的版本锚点,不管后续yum把Java 1.8升级到哪个小补丁版本,这个软链接都会自动指向当前生效的Java实际安装目录
- 你之前查到的带完整版本号的长路径(比如
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.amzn2.0.1.x86_64/),是包安装后的物理存储目录,本身就不适合拿来做长期固定配置,毕竟版本号一升级目录名就会变 - 随时可以用命令
ls -l /usr/lib/jvm/java-1.8.0-openjdk检查,确认软链接是否正确指向当前的Java安装目录
多Java版本共存场景的适配
如果后续主机要同时装多个大版本的Java(比如Java 8、Java 11混装),怕默认软链接被切换指向其他版本,就用带架构标识的固定锚点:/usr/lib/jvm/java-1.8.0-openjdk-$(arch)
这个路径同样由系统自动维护,只会绑定当前机器架构(x86_64/arm64)下的Java 8版本,不会因为其他大版本Java的安装、升级发生路径变动。
Ansible Playbook配置注意事项
不要在Playbook里硬编码带具体版本号的物理路径,直接把上面的软链接路径赋值给Spark需要的JAVA_HOME变量就可以:
- 后续yum升级Java小版本时不需要修改Ansible配置
- 完全不会出现因为版本号变动导致路径失效、Spark启动报找不到Java的问题
内容的提问来源于stack exchange,提问作者ruseel
相关产品推荐
相关产品推荐

