我对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/中的资源管理器日志中的错误消息。