我正在尝试将 HDFS 从 1.2.1 升级到版本 2.6。但是,每当我运行 start-dfs.sh -upgrade 命令时,都会收到以下错误:
hduser@Cluster1-NN:/usr/local/hadoop2/hadoop-2.6.0/etc_bkp/hadoop$ $HADOOP_NEW_HOME/sbin/start-dfs.sh -upgrade
15/05/17 12:45:58 警告 util.NativeCodeLoader:无法为您的平台加载 native hadoop 库...在适用的情况下使用内置 java 类
在 [nn] 上启动名称节点
错误:请指定 --hosts 或 --hostnames 选项之一,而不是同时指定两者。
nn:启动datanode,记录到/var/hadoop/logs/hadoop-hduser-datanode-Cluster1-NN.out dn1:启动datanode,记录到/var/hadoop/logs/hadoop-hduser-datanode-Cluster1-DN1.out dn2:启动datanode,记录到/var/hadoop/logs/hadoop-hduser-datanode-Cluster1-DN2.out
启动辅助名称节点 [0.0.0.0]
错误:请指定 --hosts 或 --hostnames 选项之一,而不是同时指定两者。
如果各位专家遇到过此类错误,请告诉我。
最佳答案
我在新安装的 Hadoop 2.7.1 的 Arch Linux 上遇到了同样的问题。我不确定我的情况是否和你的一样,但我的经验应该有帮助。我只是注释掉 /etc/profile.d/hadoop.sh
中的 HADOOP_SLAVES=/etc/hadoop/slaves
行并重新登录。访问 HDFS 和运行流作业都适合我。
原因是特定于 Arch 的脚本 /etc/profile.d/hadoop.sh
声明了 $HADOOP_SLAVES
环境变量。在 start-dfs.sh
中,使用 --hostnames
参数调用 hadoop-daemons.sh
。这让 libexec/hadoop-config.sh
感到困惑。
您可能需要以 hadoop 用户身份输入 echo $HADOOP_SLAVES
。如果有非空输出,请检查您的 .bashrc
和/或其他 shell 启动脚本。希望有帮助:)
关于hadoop - 名称节点无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30284388/