0

我正在使用 Java 并且能够启动 mapreduce 工作。该作业通过了 ShardedJob 阶段,但现在卡在了 ExamineStatusAndReturnResult 阶段。在任务队列中,我看到许多作业,例如:/mapreduce/workerCallback/map -hex-string这些作业都被重新排队,因为返回码是 429 Too Many Requests ( https://www.rfc-editor. org/rfc/rfc6585#section-4)。我觉得好像我达到了某种配额限制,但我不知道在哪里/为什么。

我如何知道为什么这些任务会收到 429 响应代码?

4

1 回答 1

0

mapreduce 库尝试通过自己的估计内存消耗簿记来避免 OOM(这可以通过覆盖 Worker/InputReader/OutputWriter 估计MemoryRequirement 方法来调整,并且当 MR 作业在它们自己的实例中运行时它工作得最好[模块,后端,版本])。在从任务队列接收到 MR 请求后,mapreduce 库将检查请求的估计内存,如果小于当前可用的内存,则请求将被拒绝并返回 HTTP 错误代码 429。为了尽量减少这种情况,您应该增加可用资源(类型、实例数)和/或减少并行负载(并发作业数、每个作业的分片,并避免同一实例上的任何其他类型的负载)。

于 2014-06-10T17:15:06.773 回答