Mapreduce 不是 运行。 /bin/bash: /bin/java: 没有那个文件或目录

Mapreduce not running. /bin/bash: /bin/java: No such file or directory

我收到以下错误。

[2022-03-01 20:03:49.581]Container exited with a non-zero exit code 127. Error file: prelaunch.err.

Last 4096 bytes of prelaunch.err :
Last 4096 bytes of stderr :

/bin/bash: /bin/java: No such file or directory

我已经在 hadoop-env.sh 中设置了我的 JAVA_HOME。我在 MacOS 12.1 上 运行,因此无法使用符号链接。

hadoop-env.sh配置:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk/Contents/Home

重新安装 Hadoop 两次。

欢迎任何意见。

Hadoop版本:3.3.1(hadoop-config.sh可以)

我已经卸载了Hadoop的brew安装,直接从apache官网安装。现在正在运行。

有趣的是,我发现 sbin 文件夹中的所有脚本 JAVA_HOME 预定义的路径“/opt/hombrew/opt”与我的 Java(我从网络而不是自制程序安装)所在的路径不同.我猜 Hadoop 的自制版本将所有 Java 版本预设为安装了 java 的软链接。

我又安装了 hadoop 的 homebrew 变体,我可以看到当前正在推送 3.3.2。

start-all.sh 脚本是这样的:

#!/bin/bash
JAVA_HOME="/opt/homebrew/opt/openjdk" exec "/opt/homebrew/Cellar/hadoop/3.3.2/libexec/sbin/start-all.sh"  "$@"

从 Apache 网站和 Homebrew 下载的 Hadoop 的文件夹分布有点不同。