Starting namenodes on [localhost] ERROR: Refusing to run as root: hdfs account is not found. Aborting.
时间: 2024-02-20 10:56:59 浏览: 221
这个错误提示是因为在启动 HDFS namenode 时使用了 root 用户身份,而 HDFS 要求不允许以 root 用户身份运行 namenode 服务。相反,你需要创建一个专用的 hdfs 用户,然后将 HDFS 相关的服务运行在该用户下。以下是创建 hdfs 用户的步骤:
1. 以 root 用户身份登录到系统中,然后运行以下命令创建 hdfs 用户:
```
useradd hdfs -m -d /home/hdfs
```
2. 设置 hdfs 用户的密码:
```
passwd hdfs
```
3. 授权 hdfs 用户访问 Hadoop 相关目录:
```
chown -R hdfs:hadoop /usr/local/hadoop/
chmod -R 755 /usr/local/hadoop/
```
4. 以 hdfs 用户身份运行 Hadoop:
```
su - hdfs
```
然后再尝试启动 namenode 服务。
相关问题
hadoop启动yarn.sh报错Refusing to run as root: root# account is not found. Aborting.
hadoop启动yarn.sh报错"Refusing to run as root: root# account is not found. Aborting."的原因是因为hadoop不允许以root用户身份运行。这是为了提高系统的安全性和稳定性。当你尝试以root用户身份运行yarn.sh时,hadoop会拒绝并报错。
解决这个问题的方法是使用一个非root用户来启动hadoop。你可以创建一个新的用户,并为其分配适当的权限。然后,使用该用户来启动hadoop。
另外,还需要确保你已经正确地配置了hadoop的环境变量,并且所有必需的文件和目录都具有正确的权限。
Shutdown handler: initalize. Refusing to run with the root privileges.
根据提供的引用内容,以下是一个演示如何使用Docker运行容器并设置特权模式的示例:
```shell
docker run -itd --privileged=true centos:7.6.1810
```
在上述命令中,`--privileged=true`参数用于给容器赋予扩展权限。这意味着容器将以特权模式运行,具有与主机系统相同的权限。
然而,如果你在使用特权模式时遇到了"Shutdown handler: initalize. Refusing to run with the root privileges."的错误消息,这可能是由于安全性设置导致的。该错误消息表明,容器拒绝以root权限运行。
为了解决这个问题,你可以尝试以下方法之一:
1. 使用非特权模式运行容器:将`--privileged=true`参数更改为`--privileged=false`,这将禁用特权模式并以非特权模式运行容器。
2. 检查容器的安全设置:确保容器的安全设置允许以特权模式运行。你可以查看容器的配置文件或与容器的管理员进行沟通,以了解是否有任何限制。
请注意,特权模式可以给容器带来更高的风险和安全隐患。在使用特权模式时,请确保你了解并理解潜在的安全风险,并采取适当的安全措施。