问题描述
[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后面,是失效的
重新启动即可,

Hadoop集群配置错误:如何为HDFS和YARN指定用户权限
本文指导读者解决启动Hadoop时遇到的错误,重点在于如何在start-dfs.sh和start-yarn.sh文件中添加HDFS_NAMENODE_USER、HADOOP_SECURE_DN_USER等环境变量,以确保作为非root用户运行。通过编辑sbin文件夹下的相关脚本并指定合适的用户,避免了root权限操作限制。
2089

被折叠的 条评论
为什么被折叠?



