[HADOOP] hadoop mapreduce / yarn에서 VCORES를 설정하는 방법은 무엇입니까?
HADOOPhadoop 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.짧은 답변
짧은 답변
단일 노드 클러스터 또는 작은 개인 분산 클러스터에서 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.yarn.nodemanager.resource.cpu-vcores - 컨테이너에 할당 할 수있는 CPU 코어 수입니다.
yarn.nodemanager.resource.cpu-vcores - 컨테이너에 할당 할 수있는 CPU 코어 수입니다.
mapreduce.map.cpu.vcores - 작업의 각 맵 작업에 할당 된 가상 CPU 코어 수
mapreduce.reduce.cpu.vcores - 작업의 각 축소 작업에 대한 가상 CPU 코어의 수
-
==============================
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에 기본값을 가질 수 있습니다.
더 많은 옵션과 기본값을 보려면이 부분을 살펴 보시기 바랍니다.
from https://stackoverflow.com/questions/26522967/how-to-set-the-vcores-in-hadoop-mapreduce-yarn by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 배열에 하이브 UDF 텍스트 (0) | 2019.06.17 |
---|---|
[HADOOP] 스파크 스트리밍 : HDFS (0) | 2019.06.17 |
[HADOOP] Hadoop Hive가 소스를 목적지로 이동할 수 없음 (0) | 2019.06.17 |
[HADOOP] 루프를 통해 hdfs 디렉토리 (0) | 2019.06.17 |
[HADOOP] JDBC를 통한 Spark SQL과 Apache Drill 통합 (0) | 2019.06.17 |