yarnexception:未经授权的启动容器请求

hmae6n7t  于 2021-06-04  发布在  Hadoop
关注(0)|答案(4)|浏览(326)

我已经在3个集群上安装了hadoop2.2.0。一切都很好。nodemanager和datanode在每个集群中启动。但是,当我运行wordcount示例时,会发生100%的Map,并给出以下异常:

map 100% reduce 0%
13/11/28 09:57:15 INFO mapreduce.Job: Task Id : attempt_1385611768688_0001_r_000000_0, Status : FAILED
Container launch failed for container_1385611768688_0001_01_000003 : org.apache.hadoop.yarn.exceptions.
YarnException: Unauthorized request to start container.
This token is expired. current time is 1385612996018 found 1385612533275
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

我通过互联网找到了解决办法。但我没发现。帮帮我。

9fkzdhlc

9fkzdhlc1#

当节点具有不同的时间设置时,会发生此异常。确保所有3个节点的时区设置相同,然后重新启动计算机。
这对我有用。希望这对你也有帮助!!!!

bxfogqkk

bxfogqkk2#

其中一个选择是通过设置 yarn.resourcemanager.rm.container-allocation.expiry-interval-ms 默认值为10分钟
例如
服务范围/高级
yarn-site.xml的Yarn服务配置安全阀

<property>
       <name>yarn.resourcemanager.rm.container-allocation.expiry-interval-ms</name>
       <value>1000000</value>
    </property>
5hcedyr0

5hcedyr03#

除了时间设置之外,请确保节点正在运行ntp或时间同步相当好-我遇到了相同的问题,并发现其中一个节点的日期设置错误的年份。一旦我把时间间隔在几秒钟之内,错误就消失了。

qq24tv8q

qq24tv8q4#

如果您突然看到这个错误,那么它可能是由于虚拟机的时间漂移造成的。
所有虚拟机都可能容易发生时间漂移。
在长时间运行的集群上,如果系统时间不与已知的良好时间源同步,系统时间可能会漂移几分钟。因此,所有使用自己系统时间的集群节点的时间都会随时间而零星漂移。
您的hadoop作业最初可能会成功运行,因为漂移可能不太明显。但是,在长时间运行的集群上,如果其中一个worker时间漂移太长(与master的时间相比),超过了10分钟的间隔,那么作业将失败,因为在该worker上调度的Yarn容器将在am提交时被标记为过期。
关键是:
“对于任何容器,如果相应的nm没有向rm报告容器已在配置的时间间隔内开始运行,默认情况下为10分钟,则rm会将容器视为已过期。”
您可以在此处了解有关Yarn容器分配的更多信息:http://hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/
所以,如果你增加工资,工作就会起作用 yarn.resourcemanager.rm.container-allocation.expiry-interval-ms 在yarn-site.xml配置文件中。
但这只是暂时的解决办法。
为了避免实际的问题,您需要使用一些同步机制,比如ntp。
ntp负责与全局时间服务器和主/工作节点进行时间同步。
您需要确保ntp守护进程已启动并在集群的所有节点上运行。ntp也应该保持“同步”( ntpstat )在群集的整个生命周期中。一些明显的问题会导致ntp不同步
您的防火墙可能正在阻止udp端口123。
您可能有与ntp冲突的不同时间同步的ad环境。
http://support.ntp.org/bin/view/support/troubleshootingntp

相关问题