2014-06-09 2 views
0

Java로 작업 중이며 mapreduce 작업을 시작할 수있었습니다. 그 일은 ShardedJob 스테이지를 통해 이루어졌지만 이제는 ExamineStatusAndReturnResult 스테이지에 머물러 있습니다. 작업 대기열에서 다음과 같은 작업이 많이 있습니다./mapreduce/workerCallback/map- 16 진수 문자열 반환 코드가 너무 많아 429 너무 많음 요청 (http://tools.ietf.org/html/rfc6585#section-4)이기 때문에 이러한 작업이 모두 다시 대기열에 들어갑니다. 나는 어떤 종류의 할당량 한도를 치는 것처럼 느낀다. 그러나 나는 어디서/왜인지 알 수 없다./mapreduce/workerCallback http 429 응답 생성

이러한 작업에 429 응답 코드가 수신되는 이유를 어떻게 알 수 있습니까?

답변

0

mapreduce 라이브러리는 Worker/InputReader/OutputWriter estimateMemoryRequirement 메서드를 재정 의하여 튜닝 할 수 있으며 자체 작업에서 MR 작업이 실행될 때 가장 잘 작동합니다 [모듈 , 백엔드, 버전]). 작업 대기열에서 MR 요청을 수신하면 mapreduce 라이브러리는 요청 된 메모리를 확인하고 현재 사용 가능한 메모리보다 적 으면 HTTP 오류 코드 429로 요청이 거부됩니다. 이러한 경우를 최소화하려면 사용 가능한 자원 (유형, 인스턴스 수) 및/또는 병렬로드 (동시 작업 수, 작업 당 파편 수 및 동일한 인스턴스의 다른 유형의로드를 피하십시오)를 줄입니다.

+0

정보 주셔서 감사합니다. 이 방법을 무시하고 엔진을 더 잘 예측할 수 있도록 각 단계에서 사용 된 메모리 양을 파이프 라인 보고서에서 확인할 수있는 방법이 있습니까? – wspeirs

+0

언급 한 바와 같이 작업자 (매퍼/감속기)의 estimateMemoryRequirement 메서드를 재정 의하여 작업에 필요한 메모리 양을 반환 할 수 있습니다. MR 라이브러리는 입력 판독기와 출력 작성자에서 오는 예상값 외에도이 값을 사용합니다. – ozarov

+0

도서관에서 사용할 메모리가 얼마나 될지를 도서관에 알릴 수 있다는 것을 이해하지만 이것은 단지 추측 일뿐입니다. 실제로 얼마나 많이 사용되었는지 말할 수 있습니까? – wspeirs