java|Hadoop运行踩坑: Attempting to operate on hdfs namenode as root

在sbin目录下执行./start-dfs.sh命令启动Hadoop时,报如下ERROR

[root@hadooptest sbin]# ./start-dfs.sh WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX. Starting namenodes on [hadooptest] 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 [hadooptest] 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.

解决方法:
在start-dfs.sh,stop-dfs.sh文件的顶部添加:
HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root

【java|Hadoop运行踩坑: Attempting to operate on hdfs namenode as root】start-yarn.sh,stop-yarn.sh顶部添加:
#!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root

在sbin目录下重新执行 ./start-all.sh,即可启动

    推荐阅读