Hadoop:无法设置资源管理器进程的优先级



我对Hadoop很陌生,正在尝试使用Hadoop-3.1.2设置伪分布式模式执行。 当我尝试启动纱线服务时,出现以下错误,请参阅下面的代码片段。

$ sbin/start-yarn.sh 
Starting resourcemanagers on []
localhost: ERROR: Cannot set priority of resourcemanager process 13209
pdsh@manager-4: localhost: ssh exited with exit code 1
Starting nodemanagers
localhost: ERROR: Cannot set priority of nodemanager process 13366
pdsh@manager-4: localhost: ssh exited with exit code 1

我尝试了这个堆栈溢出问题的解决方案,这与我的问题非常相似。但没有任何结果。与我相同的问题发布在此处的另一个论坛中。但是,那里也没有可用的解决方案。

然后,我尝试了我在以下文本中描述的另一个选项。 我在文件 sbin/start-yarn.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"

然后使用sbin/start-yarn.sh执行,我得到以下错误。请注意,我已经为root@localhost完成了无密码ssh的所有设置。

$ sudo sbin/start-yarn.sh
Starting resourcemanagers on []
localhost: Permission denied (publickey).
pdsh@manager-4: localhost: ssh exited with exit code 255
Starting nodemanagers
localhost: Permission denied (publickey).
pdsh@manager-4: localhost: ssh exited with exit code 255

我遇到了同样的问题,对我有帮助的是我在此链接中找到的指南!

消息"无法设置资源管理器进程的优先级"具有误导性。我检查了资源管理器日志,发现出现如下错误

Unexpected close tag </property>; expected </configuration>

除了赵、以法莲和齐天建议的步骤。 请确保您正在运行防火墙,则防火墙无论如何都不会阻止它。还要确保用于执行命令的用户具有足够的权限来更新优先级。

在运行 start-yarn 脚本之前,请尝试以下命令: ssh localhost

当您为本地主机设置无密码 ssh 时,将pdsh_rcmd_type值更改为 ssh:

export PDSH_RCMD_TYPE=ssh

这个错误信息实际上让我非常困惑,后来我发现它发生了,因为我没有正确配置 cgroup。 所以你可以首先检查你的配置,确保它们没问题,你可以检查你的资源管理器日志

我遇到了同样的问题,终于能够解决它。我让ResourceManager和NodeManager运行。如果您运行的是Hadoop 3.3及更高版本,则问题可能与您使用的Java版本有关。hadoop_compatibility

" Apache Hadoop 3.3 及更高版本支持 Java 8 和 Java 11(仅限运行时( 请使用Java 8编译Hadoop。不支持使用 Java 11 编译 Hadoop">

溶液:

  • 尝试切换到 java 8。
  • 然后,确保JAVA_HOME路径变量指向 java 8(包括 hadoop-env.sh 中的任何JAVA_HOME路径变量(。
  • 如果问题仍然存在,请检查位于 $HADOOP_HOME/logs/中的资源管理器日志中的错误消息。

最新更新