启动HBase-2.4.17单机版服务时出现Java路径相关错误
错误信息
ERROR: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java 不可执行。
/root/hbase/hbase-2.4.17/bin/hbase: 第805行: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java: 没有那个文件或目录
ERROR: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java 不可执行。
/root/hbase/hbase-2.4.17/bin/hbase: 第805行: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java: 没有那个文件或目录
running master, logging to /root/hbase/hbase-2.4.17/bin/../logs/hbase-root-master-sgpllab2111.out
/root/hbase/hbase-2.4.17/bin/hbase-daemon.sh: 第92行: kill: (4425) - 没有那个进程cutable.
/root/hbase/hbase-2.4.17/bin/../bin/hbase: 第805行: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java: 没有那个文件或目录
: running regionserver, logging to /root/hbase/hbase-2.4.17/bin/../logs/hbase-root-regionserver-sgpllab2111.out
: /root/hbase/hbase-2.4.17/bin/hbase-daemon.sh: 第92行: kill: (4535) - 没有那个进程cutable.
: /root/hbase/hbase-2.4.17/bin/../bin/hbase: 第805行: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java: 没有那个文件或目录
问题核心
HBase无法找到配置中指定的Java可执行文件,要么路径不存在,要么文件缺少执行权限。
解决步骤
1. 验证Java路径真实性
执行命令检查报错路径是否存在:
ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java
如果提示“没有那个文件或目录”,说明配置的路径和实际Java安装路径不匹配。
2. 查找系统真实Java路径
用以下命令定位系统中可用的Java:
which java # 或者 update-alternatives --list java
输出结果类似/usr/lib/jvm/java-1.8.0-openjdk/bin/java,这就是真实可用的路径。
3. 修改HBase的Java环境配置
编辑HBase配置目录下的hbase-env.sh文件:
vi /root/hbase/hbase-2.4.17/conf/hbase-env.sh
找到export JAVA_HOME行,替换为实际的Java路径,例如:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
如果该行被注释(开头有#),先去掉注释再修改。
4. 修复Java文件执行权限
如果路径存在但提示不可执行,给Java文件添加执行权限:
chmod +x /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/bin/java
注意替换成你实际查到的Java路径。
5. 重新启动HBase
完成配置后,再次执行启动命令:
./start-hbase.sh
内容的提问来源于stack exchange,提问作者sravani

