我有一个3节点 hadoop
具有一个namenode和两个datanode的集群。namenode位于: /opt/hadoop/
目录和数据节点位于 /mnt/hadoop/
目录。
在 .bashrc
namenode的名称是:
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
数据节点是:
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驻留在同一路径中?
谢谢。
1条答案
按热度按时间wz3gfoph1#
如果您使用start-dfs.sh(start-all.sh现在是去擦洗的,它在内部分别调用start-dfs.sh和start-yarn.sh实用程序来启动hdfs和yarn服务)实用程序来启动所有hdfs服务(namenode和datanodes),然后在所有节点中维护目录结构(保留hadoop工件和配置文件)。
如果不是在同一目录结构中维护,则必须在所有从属节点中执行以下命令以启动datanodes。
要启动从属服务,必须在所有从属节点中使用以下命令。