복붙노트

[HADOOP] Hadoop 2 + YARN에서 동시 맵퍼 및 # 리듀서는 어떻게 계산됩니까?

HADOOP

Hadoop 2 + YARN에서 동시 맵퍼 및 # 리듀서는 어떻게 계산됩니까?

언젠가 검색 한 결과 hadoop2 + yarn을 사용하는 MapReduce 클러스터에는 다음과 같은 수의 동시 맵이 있으며 노드 당 감소합니다.

동시 맵 # = yarn.nodemanager.resource.memory-mb / mapreduce.map.memory.mb 동시 감소 # = yarn.nodemanager.resource.memory-mb / mapreduce.reduce.memory.mb

그러나 다음과 같은 구성으로 10 대의 컴퓨터로 클러스터를 설정했습니다.

'yarn_site' => {
  'yarn.nodemanager.resource.cpu-vcores' => '32',
  'yarn.nodemanager.resource.memory-mb' => '16793',
  'yarn.scheduler.minimum-allocation-mb' => '532',
  'yarn.nodemanager.vmem-pmem-ratio' => '5',
  'yarn.nodemanager.pmem-check-enabled' => 'false'
},
'mapred_site' => {
  'mapreduce.map.memory.mb' => '4669',
  'mapreduce.reduce.memory.mb' => '4915',
  'mapreduce.map.java.opts' => '-Xmx4669m',
  'mapreduce.reduce.java.opts' => '-Xmx4915m'
}

그러나 클러스터가 설정된 후 hadoop은 전체 클러스터에 대해 6 개의 컨테이너를 허용합니다. 내가 무엇을 잊고 있습니까? 내가 뭘 잘못하고 있죠?

해결법

  1. ==============================

    1.이것이 동일한 문제인지 확실하지 않지만 비슷한 문제가있어서 핵심 인스턴스 그룹에서 c3.8xlarge의 20 노드로 구성된 EMR 클러스터를 시작했으며 마찬가지로 클러스터를 실행할 때 클러스터가 크게 활용되지 않는 것으로 나타났습니다. 작업 (특정 클러스터에 대한 YARN 및 MapReduce의 메모리 / vcore 구성에 500 개가 넘는 동시 컨테이너가 실행될 수 있음을 표시하더라도 전체 클러스터에서 30 개의 맵퍼 만 동시에 실행 중임) AMI 3.5.0에서 Hadoop 2.4.0을 사용하고있었습니다.

    이것이 동일한 문제인지 확실하지 않지만 비슷한 문제가있어서 핵심 인스턴스 그룹에서 c3.8xlarge의 20 노드로 구성된 EMR 클러스터를 시작했으며 마찬가지로 클러스터를 실행할 때 클러스터가 크게 활용되지 않는 것으로 나타났습니다. 작업 (특정 클러스터에 대한 YARN 및 MapReduce의 메모리 / vcore 구성에 500 개가 넘는 동시 컨테이너가 실행될 수 있음을 표시하더라도 전체 클러스터에서 30 개의 맵퍼 만 동시에 실행 중임) AMI 3.5.0에서 Hadoop 2.4.0을 사용하고있었습니다.

    어떤 이유로 인스턴스 그룹이 중요하다는 것이 밝혀졌습니다. 작업 인스턴스 그룹에 20 개의 노드와 1 개의 코어 노드 만있는 클러스터를 다시 시작했을 때 큰 차이가있었습니다. 500 개 이상의 매퍼가 동시에 실행 중입니다 (제 경우 매퍼는 대부분 S3에서 파일을 다운로드하고 있었으므로 HDFS가 필요하지 않습니다).

    두 인스턴스가 똑같이 작업을 실행할 수 있지만 분명히 다르게 처리되고 있다는 점에서 다른 인스턴스 그룹 유형이 왜 다른지 잘 모르겠습니다.

    나는이 문제에 직접 부딪 쳤고 다른 그룹 유형을 사용하는 것이 도움이되었다고 여기에서 언급 할 것이라고 생각했습니다.

  2. from https://stackoverflow.com/questions/24414748/how-concurrent-mappers-and-reducers-are-calculated-in-hadoop-2-yarn by cc-by-sa and MIT license