627.【hadoop】解决java.io.IOException: Cannot run program “bash”

一、问题详情

环境说明

  1. JDK版本:19
  2. hadoop版本: 3.2.2
  3. 操作系统版本: centos 7.6

描述

今天在部署hadoop的时候,在执行 start-dfs.sh 遇到下面的问题,提示我 Cannot run program "bash",我心里一纳闷,这是linux系统,bash 会执行不了?

2023-04-02 05:19:05,423 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.io.IOException: Cannot run program "bash": error=0, Failed to exec spawn helper: pid: 21051, exit value: 127
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
        at org.apache.hadoop.util.Shell.runCommand(Shell.java:938)
        at org.apache.hadoop.util.Shell.run(Shell.java:901)
        at org.apache.hadoop.fs.DF.getFilesystem(DF.java:74)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeResourceChecker$CheckedVolume.(NameNodeResourceChecker.java:68)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeResourceChecker.addDirToCheck(NameNodeResourceChecker.java:161)
        at org.apache.hadoop.hdfs.server.namenode.NameNodeResourceChecker.(NameNodeResourceChecker.java:130)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startCommonServices(FSNamesystem.java:1204)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.startCommonServices(NameNode.java:828)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:754)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:977)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:950)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1716)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1783)
Caused by: java.io.IOException: error=0, Failed to exec spawn helper: pid: 21051, exit value: 127
        at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
        at java.base/java.lang.ProcessImpl.(ProcessImpl.java:319)
        at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:249)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
        ... 14 more

于是我在 ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh 里打印出了 PATH 和 JAVA_HOME,并且 执行了 which bash,结果显示都没有问题。

解决方案

这是我想起来会不会是jdk版本太高了?于是将jdk版本从jdk19降到了jdk8,降完版本之后,就好了。

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/52723.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>