HDFS_NAMENODE_USER,HDFS_DATANODE_USER和HDFS_SECONDARYNAMENODE_USER未定义

Suj*_*Roy 13 hadoop hadoop3

我是hadoop的新手.
我正在尝试在Pseudo-Distributed模式下在笔记本电脑中安装hadoop.
我用root用户运行它,但我收到以下错误.

root@debdutta-Lenovo-G50-80:~# $HADOOP_PREFIX/sbin/start-dfs.sh
WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. 
Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. 
Aborting operation.
Starting secondary namenodes [debdutta-Lenovo-G50-80]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
WARNING: HADOOP_PREFIX has been replaced by  HADOOP_HOME. Using value of HADOOP_PREFIX.
Run Code Online (Sandbox Code Playgroud)

此外,我必须在root用户中运行hadoop,因为hadoop无法与其他用户访问ssh服务.
怎么修这个?

小智 19

只要做它问你的事情:

export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
Run Code Online (Sandbox Code Playgroud)

  • 将所有这些命令添加到hadoop-env.sh中,您就可以开始了! (3认同)

小智 5

这个问题的根本原因,

  1. hadoop为其他用户安装,然后为其他用户启动yarn服务。要么
  2. 在hadoop配置的hadoop-env.sh中,指定的HDFS_NAMENODE_USER和HDFS_DATANODE_USER用户是其他用户。

因此,我们需要在每个地方进行纠正并使之保持一致。因此,解决此问题的简单方法是编辑hadoop-env.sh文件并添加要为其启动yarn服务的用户名。因此,请继续并$HADOOP_HOME/etc/hadoop/hadoop-env.sh通过添加以下几行进行编辑

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
Run Code Online (Sandbox Code Playgroud)

现在保存并启动yarn,hdfs服务并检查其是否有效。