问题描述
[root@localhost sbin]# start-dfs.sh
Starting namenodes on [localhost.localdomain]
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.
[root@localhost sbin]# vim start-dfs.sh
分析原因
考虑是未指定 HDFS_NAMENODE_USER,指定一下就好啦
解决方法
在Hadoop安装目录下找到sbin文件夹
在里面修改四个文件
对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
需要注意的是,尽量放到.sh文件内容的上方,因为如果放到末尾,可能不注意放到了exit后面,是失效的
重新启动即可,