我正在按照 this 教程在我的计算机上安装 hadoop。据我所知,我一直完美地遵循了说明,直到
source ~/.profile
,但是当我尝试通过输入hdfs namenode -format
来格式化HDFS时,它给了我以下错误:
ERROR: Cannot execute /usr/local/Cellar/hadoop/3.0.0/libexec/hdfs-config.sh
我尝试了很多方法在互联网上寻找解决方案,但没有找到解决方案。
@BIKI 我刚刚遇到了同样的问题,Hadoop 版本 3.0.0 有一个奇怪的文件结构,它无法按照您认为应该的方式设置主目录。
我使用的是 MAC High Sierra OS 10.13,并使用
brew
安装,但我认为您会在 Ubuntu 或任何类似 UNIX 的系统上看到类似的内容。
底线,如果您想追踪错误,请检查您的个人资料 (
HADOOP_HOME
) 中的 .bash_profile
以及启动 Hadoop 时启动的脚本。就我而言,我的个人资料中设置了一个名为 hstart
的别名,它调用以下文件:
start-dfs.sh
并且
start-yarn.sh
这些文件调用
hdfs-config.sh
文件,该文件在主目录设置下会丢失。
我的 Hadoop 主目录设置为:
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0
我把它改为:
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0/libexec
当然,您必须
source
您的配置文件,就我而言,它是:
source .bash_profile
对我来说,这成功了。希望有帮助!
看起来最新版本的 Brew 有问题。 我尝试直接从here下载版本Hadoop-2.8.1。
遵循相同的说明。它正在工作。
通过 Brew 安装的 Hadoop 3.1.1 及更高版本也存在同样的问题。 HADOOP_HOME 未正确设置。执行:
$ echo $HADOOP_HOME
如果您看到
”/usr/local/Cellar/hadoop”
,您必须添加特定的 Hadoop 版本
$ export HADOOP_HOME=/usr/local/Cellar/hadoop/3.1.1
可能出现此错误的其他原因之一是由于没有可用于在本地主机中运行 Hadoop 的权限。我们通常配置 SSH 以避免输入密码或避免向 Hadoop 提供 root 权限。简单来说,我们将Hadoop配置为以非root模式运行。可以做的是:
每次您想要使用 Hadoop 或正确定义 SSH 密钥时,请使用
sudo
,
示例:
$ ssh-keygen -t rsa -P ""
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
我在 hadoop-3.3.6/bin/hdfs namenode -format 前面添加了 sudo 命令,它可以工作。
就像这样:sudo hadoop-3.3.6/bin/hdfs namenode -format