我有一个3节点hadoop
群集,其中包含一个namenode和两个datanode。
namenode位于:/opt/hadoop/
目录,datanodes位于/mnt/hadoop/
目录中。
namenode的.bashrc
是:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
export HADOOP_INSTALL=/opt/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
和datanodes是:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
export HADOOP_INSTALL=/mnt/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
然而,当我从namenode启动集群时,我从 datanodes 说
/opt/hadoop/sbin/hadoop-daemon.sh: No such file or directory
。
在我看来,奴隶指的是/opt/hadoop/
而不是/mnt/hadoop
。这是为什么?
从站应该与namenodes位于同一路径吗?
感谢。
答案 0 :(得分:1)
如果你使用start-dfs.sh(start-all.sh现在被描述,内部调用start-dfs.sh和start-yarn.sh实用程序分别启动HDFS和YARN服务)实用程序用于启动所有HDFS服务( namenode和datanodes),然后你必须在所有节点中维护目录结构(保持hadoop工件和配置文件)。
如果不维护相同的目录结构,则必须在所有从属节点中执行以下命令以启动数据节点。
$HADOOP_INSTALL/sbin/hadoop-daemon.sh start datanode
要启动纱线从属服务,必须在所有从属节点中使用以下命令。
$HADOOP_INSTALL/sbin/yarn-daemon.sh start nodemanager