복붙노트

[HADOOP] hadoop mapreduce / yarn에서 VCORES를 설정하는 방법은 무엇입니까?

HADOOP

hadoop mapreduce / yarn에서 VCORES를 설정하는 방법은 무엇입니까?

다음은 내 구성입니다.

**mapred-site.xml**
map-mb : 4096 opts:-Xmx3072m
reduce-mb : 8192 opts:-Xmx6144m

**yarn-site.xml**
resource memory-mb : 40GB
min allocation-mb : 1GB

hadoop 클러스터의 Vcores는 8GB를 표시하지만 계산 방법이나 구성 위치를 모른다.

누군가 나를 도울 수 있기를 바랍니다.

해결법

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

    1.짧은 답변

    짧은 답변

    단일 노드 클러스터 또는 작은 개인 분산 클러스터에서 hadoop을 실행중인 경우에는 거의 상관 없습니다. 메모리에 대해 걱정할 필요가 있습니다.

    긴 답변

    vCores는 다른 사용자 또는 응용 프로그램에 대해 CPU를 제한하기 위해 더 큰 클러스터에 사용됩니다. YARN을 직접 사용한다면 컨테이너 CPU를 제한 할 실질적인 이유가 없습니다. 이것이 vCore가 Hadoop에서 기본적으로 고려되지 않은 이유입니다!

    사용 가능한 nodemanager vcores를 1로 설정하십시오. 중요하지 않습니다! 귀하의 컨테이너 수는 여전히 2 또는 4 .. 또는 무엇이든의 값 :

    yarn.nodemanager.resource.memory-mb / mapreduce. [map | reduce] .memory.mb

    실제로 컨테이너의 수를 고려하여 vCore를 고려하고 다음에 의해 제한됩니다.

    yarn.nodemanager.resource.cpu-vcores / mapreduce. [map | reduce] .cpu.vcores

    다른 다른 Resource Calculator를 사용해야합니다. capacity-scheduler.xml 구성으로 가서 DefaultResourceCalculator를 DominantResourceCalculator로 변경하십시오.

    컨테이너 할당에 vCores를 사용하는 것 외에도 vCores를 사용하여 각 노드의 CPU 사용을 실제로 제한하고 싶습니까? CPU 리소스를 제한하는 데 사용되는 Linux cgroup을 관리 할 수 ​​있으므로 DefaultContainerExecutor 대신 LinuxContainerExecutor를 사용하도록 더 많은 구성을 변경해야합니다. 더 자세한 정보가 필요하면이 페이지를 따르십시오.

  2. ==============================

    2.yarn.nodemanager.resource.cpu-vcores - 컨테이너에 할당 할 수있는 CPU 코어 수입니다.

    yarn.nodemanager.resource.cpu-vcores - 컨테이너에 할당 할 수있는 CPU 코어 수입니다.

    mapreduce.map.cpu.vcores - 작업의 각 맵 작업에 할당 된 가상 CPU 코어 수

    mapreduce.reduce.cpu.vcores - 작업의 각 축소 작업에 대한 가상 CPU 코어의 수

  3. ==============================

    3.우연히이 질문을 우연히 만났고 결국 필자가 필요한 답변을 찾을 수 있었기 때문에 완전한 대답을 제공하려고 노력할 것입니다.

    우연히이 질문을 우연히 만났고 결국 필자가 필요한 답변을 찾을 수 있었기 때문에 완전한 대답을 제공하려고 노력할 것입니다.

    엔터티 및 관계 각 hadoop 응용 프로그램 / 작업마다 클러스터의 사용 가능한 리소스에 대해 ResourceManager와 통신하는 응용 프로그램 마스터가 있습니다. ResourceManager는 각 NodeManager에서 사용 가능한 리소스에 대한 정보를 각 NodeManager에서받습니다. 리소스는 컨테이너 (메모리 및 CPU)라고합니다. 자세한 내용은이 부분을 참조하십시오.

    클러스터의 리소스 선언 각 NodeManager는 사용 가능한 리소스에 대한 정보를 제공합니다. 관련 설정은 $ HADOOP_CONF_DIR / yarn-site.xml의 yarn.nodemanager.resource.memory-mb 및 yarn.nodemanager.resource.cpu-vcores입니다. 컨테이너에 할당 할 수있는 메모리와 CPU를 선언합니다.

    리소스 요청 작업을 위해 각 맵 / 리소스가 필요로하는 리소스를 구성 할 수 있습니다. 이 작업은 다음과 같이 수행 할 수 있습니다 (지도 작업의 경우).

    conf.set("mapreduce.map.cpu.vcores", "4");
    conf.set("mapreduce.map.memory.mb", "2048");
    

    이렇게하면 4 개의 가상 코어와 각 맵 작업에 대해 2048MB의 메모리가 필요합니다.

    또한 yarns.app.mapreduce.am.resource.mb 및 yarn.app.mapreduce.am.resource.cpu-vcores 속성을 사용하여 응용 프로그램 마스터에 필요한 리소스를 동일한 방식으로 구성 할 수 있습니다.

    이러한 등록 정보는 $ HADOOP_CONF_DIR / mapred-default.xml에 기본값을 가질 수 있습니다.

    더 많은 옵션과 기본값을 보려면이 부분을 살펴 보시기 바랍니다.

  4. from https://stackoverflow.com/questions/26522967/how-to-set-the-vcores-in-hadoop-mapreduce-yarn by cc-by-sa and MIT license