【问题标题】:YarnException: Unauthorized request to start containerYarnException:启动容器的未经授权的请求
【发布时间】:2013-12-14 00:06:26
【问题描述】:

我已经在 3 个集群上设置了 hadoop2.2.0。一切都很顺利。 NodeManager 和 Datanode 在每个集群中启动。但是,当我运行 wordcount 示例时,会发生 100% 的映射,并且会出现以下异常:

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)

我已经通过互联网寻找解决方案。但我查不出来。帮帮我。

【问题讨论】:

  • 有没有人解决这个问题??

标签: java hadoop mapreduce cluster-computing hadoop-yarn


【解决方案1】:

当您的节点具有不同的时间设置时会发生此异常。 确保您的所有 3 个节点都具有相同的 time n 时区设置,然后重新启动计算机。

这对我有用。希望这对你也有帮助!!!!

【讨论】:

  • 我在所有节点都使用了如下命令来设置时间:date +%T%p -s "7:00:00AM",甚至不用重启节点也能正常工作,谢谢!跨度>
【解决方案2】:

其中一个选项是通过设置来延长容器的使用寿命

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>

【讨论】:

    【解决方案3】:

    除了时间设置之外,请确保节点正在运行 NTP 或时间同步合理 - 我遇到了同样的问题,发现其中一个节点在日期中设置了错误的 YEAR .一旦我把时间间隔在几秒钟之内,错误就消失了。

    【讨论】:

      【解决方案4】:

      如果您突然看到此错误,则可能是由于虚拟机的时间漂移​​。

      所有虚拟机都容易出现时间漂移。

      如果系统时间未与已知的良好时间源同步,系统时间可能会在长时间运行的集群上漂移几分钟。因此,所有使用自己的系统时间的集群节点都可能随着时间的推移偶尔发生时间漂移。

      您的 Hadoop 作业最初可能会成功运行,因为偏差可能不太明显。但是,在长时间运行的集群上,如果其中一个工作人员的时间漂移​​过长(与 master 的时间相比)超过 10 分钟的时间间隔,那么作业将失败,因为调度在该工作人员上的 YARN 容器将被标记为 EXPIRED AM提交它。

      关键部分是:

      "对于任何一个容器,如果对应的NM没有报告给RM 容器已在配置的时间间隔内开始运行 时间,默认为 10 分钟,容器被视为死亡, 已被 RM 过期。”

      您可以在此处了解有关 YARN Container 分配的更多信息:http://hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/

      因此,如果您在 yarn-site.xml 配置文件中增加 yarn.resourcemanager.rm.container-allocation.expiry-interval-ms,这些作业将起作用。

      但这只是临时解决方法。


      为避免实际问题,您需要使用一些同步 NTP 等机制。

      NTP 负责与全球时间服务器和您的主/工作节点进行时间同步。

      您需要确保 NTP 守护程序已启动并在集群的所有节点上运行。 NTP 还应该在集群的整个生命周期内保持“同步”(ntpstat)。一些可能导致 NTP 不同步的明显问题

      • 您的防火墙可能阻止了 UDP 端口 123。
      • 您可能患有 AD 与 NTP 冲突的时间同步不同的环境。

      http://support.ntp.org/bin/view/Support/TroubleshootingNTP

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-21
        • 1970-01-01
        • 2012-08-17
        • 1970-01-01
        • 2012-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多