我是hadoop的新手.
我正在尝试在Pseudo-Distributed模式下在笔记本电脑中安装hadoop.
我用root用户运行它,但我收到以下错误.
root@debdutta-Lenovo-G50-80:~# $HADOOP_PREFIX/sbin/start-dfs.sh
WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.
Starting namenodes on [localhost]
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 [debdutta-Lenovo-G50-80]
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.
Run Code Online (Sandbox Code Playgroud)
此外,我必须在root用户中运行hadoop,因为hadoop无法与其他用户访问ssh服务.
怎么修这个?
小智 19
只要做它问你的事情:
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"
Run Code Online (Sandbox Code Playgroud)
小智 5
这个问题的根本原因,
因此,我们需要在每个地方进行纠正并使之保持一致。因此,解决此问题的简单方法是编辑hadoop-env.sh文件并添加要为其启动yarn服务的用户名。因此,请继续并$HADOOP_HOME/etc/hadoop/hadoop-env.sh通过添加以下几行进行编辑
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
Run Code Online (Sandbox Code Playgroud)
现在保存并启动yarn,hdfs服务并检查其是否有效。