我正在按照本教程在我的计算机中安装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 有问题。我尝试直接从这里下载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 提供根权限。通过一个简单的方法,我们将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