2012-08-17 4 views
2

오랫동안 그런 두통을 겪고 있습니다. 현재 내 hadoop 클러스터는 이와 같으며, 40 개의 실행 노드가 있습니다. 각 슬레이브 노드는 25 개의 매퍼를 구성합니다. 10 그래서 mixumally 나는 40 * 25 = 1000 mappers와 400 reducers를 동시에 출시 할 수 있습니다.스탠드에서 실행중인 hadoop 작업을 병렬로 수행하는 방법 hadoop distritbuion 0.20.0

작업 1 : 좋아, 지금은 다음과 같은 작업을 내가 5 매퍼 5 감속기를 실행하도록 구성 작업 2 : 나는 20 매퍼 (10) 감속기를 실행하도록 구성 job3 : 나는 975 매퍼 (385) 감속기

을 실행하도록 구성

기본 FIFO 작업 스케줄링을 사용한다고 가정합니다. 3 개의 매퍼를 연속적으로 제출하면 3 개의 작업을 동시에 실행할 수 있습니까? 클러스터가 최대한 활용되도록?

현재 나는 매퍼 단계에서 3 개의 작업을 제출 한 후 1000 개의 매퍼를 실행할 수 있다고 생각하지만 감속기 단계에서는 매우 느려서 오랜 시간 기다려야합니다. 위의 작업이 끝나면 감속기 단계에 걸린 것 같습니다.

나는이 고유 한 이유를 잘 이해하지 못하므로,이 문제에 관해 아무도 도와 줄 수 없으므로 내일 일자리를 제공하고 잠을 잘 수 있으며, 내일 아침 내 직업은 모두 주문으로 끝나는 것을 볼 수 있습니까? 공정한 스케줄링을 사용해야 작동합니까?

답변

1

해결책을 제시하기가 약간 어렵지만, 나는 해결책을 찾는 방향을 제시하려고 노력할 것입니다. 1. 클러스터에 슬롯을 충분히 줄인 경우 병렬 작업 실행과 관련되지 않은 문제 일 수 있습니다. 적어도 나는 처음에는 그것을 의심하지 않는다.
2. Fair Scheduler를 사용하는 것이 좋습니다 - 병렬 실행과 리소스 공유를 위해 특별히 제작되었습니다.
3. 각 작업을 개별적으로 테스트하고 각 작업이 양호한 병렬 실행을 실행 한 후에 만 ​​테스트하는 것이 좋습니다.
4. 느린 줄이기에는 여러 가지 이유가있을 수 있지만 다음 사항 (내가 아는 것)을 확인합니다.
a) 매퍼와 감속기간에 많은 양의 데이터가 전달되었습니다. 그것을 식별하기 위해 카운터를 작성한 파일 시스템 바이트를 살펴보십시오.
b) 심각한 데이터 왜곡이 있으며 많은 양의 데이터가 단일 감속기에 제공됩니다.

관련 문제