启动hdfs报错:Attempting to operate on hdfs namenode as root but there is no HDFS NAMENODE USER defined.

问题:

配置好了hadoop的文件一启动就发现报错

造成原因:

这个问题呢,其实还是你的配置文件配错了,有两个配置文件的问题:

  • core-site.xml文件

  • hadoop-env.sh 文件

这两个文件都是在hadoop软件下的etc/下的配置文件

其次可能还有就是你之前就配置过hadoop,并且还修改过环境变量的文件比如说/etc/profile这个文件

解决问题

有了问题导向就可以解决问题了

首先查看一下hadoop所在的文件夹的上一个文件夹看是那个用户可以操作

我的hadoop安装的目录是在/opt/module/下的

输入

ll 或者 ls -l

可以看见这个文件夹可以操作的用户有是root

然后查看core-site.xml文件,修改以下配置

    
    
        hadoop.http.staticuser.user
        root
    

接着还要在hadoop-env.sh文件下添加一下信息

export JAVA_HOME=/export/servers/jdk1.8.0_141/

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"

注意export JAVA_HOME这个是你java实际安装的路径,别啥都不看就复制了

接着将这些配置文件分发到其他linux的hadoop下的/etc/hadoop/下

scp -r /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml hadoop122:/opt/module/hadoop-3.1.3/etc/hadoop/

scp -r /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml hadoop123:/opt/module/hadoop-3.1.3/etc/hadoop/

最后再检查一下/etc/profile,如果发现其中hadoop的路径与现在配置的路径相同,则不用管,否则就将原来的配置注解添加一下配置,注意所有虚拟机都要配置

vim /etc/profile
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

一样export HADOOP_HOME要是你自己hadoop所在的路径

启动成功

你可能感兴趣的:(hadoop)