개요
Dataproc NodeGroup
리소스는 할당된 역할을 실행하는 Dataproc 클러스터 노드 그룹입니다. 이 페이지에서는 Dataproc 클러스터에서 작업 드라이버를 실행하기 위해 Driver
역할이 할당된 Compute Engine VMS 그룹인 드라이버 노드 그룹을 설명합니다.
드라이버 노드 그룹을 사용하는 경우
- 드라이버 노드 그룹은 공유 클러스터에서 많은 동시 작업을 실행해야 하는 경우에만 사용합니다.
- 드라이버 노드 그룹 제한을 방지하려면 드라이버 노드 그룹을 사용하기 전에 마스터 노드 리소스를 늘립니다.
드라이버 노드가 동시 작업을 실행하는 데 도움이 되는 방식
Dataproc은 각 작업에 대해 Dataproc 클러스터 마스터 노드에서 작업 드라이버 프로세스를 시작합니다. 그러면 드라이버 프로세스는 spark-submit
와 같은 애플리케이션 드라이버를 하위 프로세스로 실행합니다.
하지만 마스터에서 실행되는 동시 작업 수는 마스터 노드에서 사용할 수 있는 리소스로 제한되며 Dataproc 마스터 노드를 확장할 수 없기 때문에 마스터 노드 리소스가 작업을 실행하기에 충분하지 않을 때 작업이 실패하거나 제한될 수 있습니다.
드라이버 노드 그룹은 YARN에서 관리하는 특수 노드 그룹이므로 작업 동시 실행은 마스터 노드 리소스로 제한되지 않습니다. 드라이버 노드 그룹이 있는 클러스터에서 애플리케이션 드라이버는 드라이버 노드에서 실행됩니다. 노드에 충분한 리소스가 있는 경우 각 드라이버 노드는 여러 애플리케이션 드라이버를 실행할 수 있습니다.
이점
Dataproc 클러스터를 드라이버 노드 그룹과 함께 사용하면 다음을 수행할 수 있습니다.
- 더 많은 동시 작업을 실행하도록 작업 드라이버 리소스를 수평 확장
- 작업자 리소스와 별도로 드라이버 리소스 확장
- Dataproc 2.0 이상 이미지 클러스터에서 더 빠르게 축소. 이러한 클러스터에서 앱 마스터는 드라이버 노드 그룹의 Spark 드라이버 내에서 실행됩니다(기본적으로
spark.yarn.unmanagedAM.enabled
가true
로 설정됨). - 드라이버 노드 시작 맞춤설정
{ROLE} == 'Driver'
를 초기화 스크립트에 추가하여 스크립트가 노드 선택에서 드라이버 노드 그룹에 대해 작업을 수행하도록 할 수 있습니다.
제한사항
- 노드 그룹은 Dataproc 워크플로 템플릿에서 지원되지 않습니다.
- 노드 그룹 클러스터는 중지, 다시 시작, 자동 확장할 수 없습니다.
- 맵리듀스 앱 마스터는 워커 노드에서 실행됩니다. 단계적 해제를 사용 설정하면 워커 노드 축소 속도가 느려질 수 있습니다.
- 작업 동시 실행은
dataproc:agent.process.threads.job.max
클러스터 속성의 영향을 받습니다. 예를 들어 마스터가 3개이고 이 속성이 기본값100
으로 설정된 경우 최대 클러스터 수준 작업 동시 실행은300
입니다.
드라이버 노드 그룹과 Spark 클러스터 모드 비교
기능 | Spark 클러스터 모드 | 드라이버 노드 그룹 |
---|---|---|
워커 노드 축소 | 장기 드라이버는 단기 컨테이너와 동일한 워커 노드에서 실행되므로 단계적 해제를 사용하는 작업자축소가 느려집니다. | 드라이버가 노드 그룹에서 실행되면 워커 노드가 더 빠르게 축소됩니다. |
스트리밍된 드라이버 출력 | 드라이버가 예약된 노드를 찾으려면 YARN 로그에서 검색해야 합니다. | 드라이버 출력은 Cloud Storage로 스트리밍되며 작업이 완료된 후 Google Cloud 콘솔 및 gcloud dataproc jobs wait 명령어 결과에서 볼 수 있습니다. |
드라이버 노드 그룹 IAM 권한
다음 IAM 권한은 다음 Dataproc 노드 그룹 관련 작업과 연결됩니다.
권한 | 작업 |
---|---|
dataproc.nodeGroups.create
|
Dataproc 노드 그룹을 만듭니다. 프로젝트에서 사용자에게 dataproc.clusters.create 가 있으면 이 권한이 부여됩니다. |
dataproc.nodeGroups.get |
Dataproc 노드 그룹의 세부정보를 가져옵니다. |
dataproc.nodeGroups.update |
Dataproc 노드 그룹 크기를 조정합니다. |
드라이버 노드 그룹 작업
gcloud CLI 및 Dataproc API를 사용하여 Dataproc 드라이버 노드 그룹에 작업을 만들고, 가져오고, 크기를 조절하고, 삭제하고, 제출할 수 있습니다.
드라이버 노드 그룹 클러스터 만들기
드라이버 노드 그룹은 Dataproc 클러스터 하나와 연결됩니다. Dataproc 클러스터 만들기의 일부로 노드 그룹을 만듭니다. gcloud CLI 또는 Dataproc REST API를 사용하여 드라이버 노드 그룹이 있는 Dataproc 클러스터를 만들 수 있습니다.
gcloud
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --driver-pool-size=SIZE \ --driver-pool-id=NODE_GROUP_ID
필수 플래그:
- CLUSTER_NAME: 프로젝트 내에서 고유해야 하는 클러스터 이름입니다. 이름은 소문자로 시작해야 하며, 최대 51자(영문 기준)의 소문자, 숫자, 하이픈을 포함할 수 있습니다. 하이픈으로 끝나면 안 됩니다. 삭제된 클러스터의 이름을 재사용할 수 있습니다.
- REGION: 클러스터가 위치할 리전
- SIZE: 노드 그룹에 있는 드라이버 노드 수입니다. 필요한 노드 수는 작업 부하 및 드라이버 풀 머신 유형에 따라 다릅니다. 최소 드라이버 그룹 노드의 수는 작업 드라이버에 필요한 총 메모리 또는 vCPU를 각 드라이버 풀의 머신 메모리 또는 vCPU로 나눈 값과 같습니다.
- NODE_GROUP_ID: 선택사항이며 권장됩니다. ID는 클러스터 내에서 고유해야 합니다. 노드 그룹 크기 조절과 같은 향후 작업에서 드라이버 그룹을 식별하려면 이 ID를 사용합니다. 지정하지 않으면 Dataproc에서 노드 그룹 ID를 생성합니다.
권장 플래그:
--enable-component-gateway
: 이 플래그를 추가하여 YARN 웹 인터페이스에 대한 액세스 권한을 제공하는 Dataproc 구성요소 게이트웨이를 사용 설정합니다. YARN UI Application(애플리케이션) 및 Scheduler(스케줄러) 페이지에는 클러스터 및 작업 상태, 애플리케이션 큐 메모리, 코어 용량, 기타 측정항목이 표시됩니다.
추가 플래그: 다음 선택적 driver-pool
플래그를 gcloud dataproc clusters create
명령어에 추가하여 노드 그룹을 맞춤설정할 수 있습니다.
플래그 | 기본값 |
---|---|
--driver-pool-id |
플래그로 설정하지 않으면 서비스에서 생성하는 문자열 식별자입니다. 이 ID는 향후 노드 풀 작업(예: 노드 그룹 크기 조절)을 실행할 때 노드 그룹을 식별하는 데 사용할 수 있습니다. |
--driver-pool-machine-type |
n1-standard-4 |
--driver-pool-accelerator |
기본 기기 없음 가속기를 지정할 때 GPU 유형은 필수 항목이고 GPU 수는 선택사항입니다. |
--num-driver-pool-local-ssds |
기본값 없음 |
--driver-pool-local-ssd-interface |
기본값 없음 |
--driver-pool-boot-disk-type |
pd-standard |
--driver-pool-boot-disk-size |
1000 GB |
--driver-pool-min-cpu-platform |
AUTOMATIC |
REST
Dataproc API cluster.create
요청의 일부로 AuxiliaryNodeGroup을 작성합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: (필수사항) Google Cloud 프로젝트 ID입니다.
- REGION: (필수사항) Dataproc 클러스터 리전입니다.
- CLUSTER_NAME: (필수사항) 프로젝트 내에서 고유해야 하는 클러스터 이름입니다. 이름은 소문자로 시작해야 하며, 최대 51자(영문 기준)의 소문자, 숫자, 하이픈을 포함할 수 있습니다. 하이픈으로 끝나면 안 됩니다. 삭제된 클러스터의 이름을 재사용할 수 있습니다.
- SIZE: (필수사항) 노드 그룹에 있는 노드 수입니다.
- NODE_GROUP_ID: 선택사항이며 권장됩니다. ID는 클러스터 내에서 고유해야 합니다. 노드 그룹 크기 조절과 같은 향후 작업에서 드라이버 그룹을 식별하려면 이 ID를 사용합니다. 지정하지 않으면 Dataproc에서 노드 그룹 ID를 생성합니다.
추가 옵션: NodeGroup을 참고하세요.
HTTP 메서드 및 URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
JSON 요청 본문:
{ "clusterName":"CLUSTER_NAME", "config": { "softwareConfig": { "imageVersion":"" }, "endpointConfig": { "enableHttpPortAccess": true }, "auxiliaryNodeGroups": [{ "nodeGroup":{ "roles":["DRIVER"], "nodeGroupConfig": { "numInstances": SIZE } }, "nodeGroupId": "NODE_GROUP_ID" }] } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "projectId": "PROJECT_ID", "clusterName": "CLUSTER_NAME", "config": { ... "auxiliaryNodeGroups": [ { "nodeGroup": { "name": "projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/NODE_GROUP_ID", "roles": [ "DRIVER" ], "nodeGroupConfig": { "numInstances": SIZE, "instanceNames": [ "CLUSTER_NAME-np-q1gp", "CLUSTER_NAME-np-xfc0" ], "imageUri": "https://www.googleapis.com/compute/v1/projects/cloud-dataproc-ci/global/images/dataproc-2-0-deb10-...-rc01", "machineTypeUri": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/REGION-a/machineTypes/n1-standard-4", "diskConfig": { "bootDiskSizeGb": 1000, "bootDiskType": "pd-standard" }, "managedGroupConfig": { "instanceTemplateName": "dataproc-2a8224d2-...", "instanceGroupManagerName": "dataproc-2a8224d2-..." }, "minCpuPlatform": "AUTOMATIC", "preemptibility": "NON_PREEMPTIBLE" } }, "nodeGroupId": "NODE_GROUP_ID" } ] }, }
드라이버 노드 그룹 클러스터 메타데이터 가져오기
gcloud dataproc node-groups describe 명령어 또는 Dataproc API를 사용하여 드라이버 노드 그룹 메타데이터를 가져올 수 있습니다.
gcloud
gcloud dataproc node-groups describe NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION
필수 플래그:
- NODE_GROUP_ID:
gcloud dataproc clusters describe CLUSTER_NAME
을 실행하여 노드 그룹 ID를 나열할 수 있습니다. - CLUSTER_NAME: 클러스터 이름입니다.
- REGION: 클러스터 리전입니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: (필수사항) Google Cloud 프로젝트 ID입니다.
- REGION: (필수사항) 클러스터 리전입니다.
- CLUSTER_NAME: (필수사항) 클러스터 이름입니다.
- NODE_GROUP_ID: (필수사항)
gcloud dataproc clusters describe CLUSTER_NAME
을 실행하여 노드 그룹 ID를 나열할 수 있습니다.
HTTP 메서드 및 URL:
GET https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAMEnodeGroups/Node_GROUP_ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/NODE_GROUP_ID", "roles": [ "DRIVER" ], "nodeGroupConfig": { "numInstances": 5, "imageUri": "https://www.googleapis.com/compute/v1/projects/cloud-dataproc-ci/global/images/dataproc-2-0-deb10-...-rc01", "machineTypeUri": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/REGION-a/machineTypes/n1-standard-4", "diskConfig": { "bootDiskSizeGb": 1000, "bootDiskType": "pd-standard" }, "managedGroupConfig": { "instanceTemplateName": "dataproc-driver-pool-mcia3j656h2fy", "instanceGroupManagerName": "dataproc-driver-pool-mcia3j656h2fy" }, "minCpuPlatform": "AUTOMATIC", "preemptibility": "NON_PREEMPTIBLE" } }
드라이버 노드 그룹 크기 조절
gcloud dataproc node-groups resize 명령어 또는 Dataproc API를 사용하여 클러스터 드라이버 노드 그룹에서 드라이버 노드를 추가하거나 삭제할 수 있습니다.
gcloud
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=SIZE
필수 플래그:
- NODE_GROUP_ID:
gcloud dataproc clusters describe CLUSTER_NAME
을 실행하여 노드 그룹 ID를 나열할 수 있습니다. - CLUSTER_NAME: 클러스터 이름입니다.
- REGION: 클러스터 리전입니다.
- SIZE: 노드 그룹의 새 드라이버 노드 수를 지정합니다.
선택적 플래그:
--graceful-decommission-timeout=TIMEOUT_DURATION
: 노드 그룹을 축소할 때 이 플래그를 추가하여 단계적 해제 TIMEOUT_DURATION을 지정하여 작업 드라이버가 즉시 종료되지 않도록 할 수 있습니다. 권장사항: 제한 시간을 노드 그룹에서 실행되는 가장 긴 작업 기간과 동일하게 설정하세요(실패한 드라이버의 복구는 지원되지 않음).
예: gcloud CLI NodeGroup
확장 명령어:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=4
예시: gcloud CLI NodeGroup
축소 명령어:
gcloud dataproc node-groups resize NODE_GROUP_ID \ --cluster=CLUSTER_NAME \ --region=REGION \ --size=1 \ --graceful-decommission-timeout="100s"
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: (필수사항) Google Cloud 프로젝트 ID입니다.
- REGION: (필수사항) 클러스터 리전입니다.
- NODE_GROUP_ID: (필수사항)
gcloud dataproc clusters describe CLUSTER_NAME
을 실행하여 노드 그룹 ID를 나열할 수 있습니다. - SIZE: (필수사항) 노드 그룹에 있는 새 노드 수입니다.
- TIMEOUT_DURATION: 선택사항. 노드 그룹을 축소할 때 작업 드라이버가 즉시 종료되지 않도록 요청 본문에
gracefulDecommissionTimeout
을 추가할 수 있습니다. 권장사항: 제한 시간을 노드 그룹에서 실행되는 가장 긴 작업 기간과 동일하게 설정하세요(실패한 드라이버의 복구는 지원되지 않음).예를 들면 다음과 같습니다.
{ "size": SIZE, "gracefulDecommissionTimeout": "TIMEOUT_DURATION" }
HTTP 메서드 및 URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters/CLUSTER_NAME/nodeGroups/Node_GROUP_ID:resize
JSON 요청 본문:
{ "size": SIZE, }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.NodeGroupOperationMetadata", "nodeGroupId": "NODE_GROUP_ID", "clusterUuid": "CLUSTER_UUID", "status": { "state": "PENDING", "innerState": "PENDING", "stateStartTime": "2022-12-01T23:34:53.064308Z" }, "operationType": "RESIZE", "description": "Scale "up or "down" a GCE node pool to SIZE nodes." } }
드라이버 노드 그룹 클러스터 삭제
Dataproc 클러스터를 삭제하면 클러스터와 연결된 노드 그룹이 삭제됩니다.
작업 제출
gcloud dataproc jobs submit 명령어 또는 Dataproc API를 사용하여 드라이버 노드 그룹이 있는 클러스터에 작업을 제출할 수 있습니다.
gcloud
gcloud dataproc jobs submit JOB_COMMAND \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=DRIVER_MEMORY \ --driver-required-vcores=DRIVER_VCORES \ DATAPROC_FLAGS \ -- JOB_ARGS
필수 플래그:
- JOB_COMMAND: 작업 명령어를 지정합니다.
- CLUSTER_NAME: 클러스터 이름입니다.
- DRIVER_MEMORY: 작업을 실행하는 데 필요한 작업 드라이버 메모리 양(MB)입니다(Yarn 메모리 제어 참조).
- DRIVER_VCORES: 작업을 실행하는 데 필요한 vCPU 수입니다.
추가 플래그:
- DATAPROC_FLAGS: 작업 유형과 관련된 추가적인 gcloud dataproc jobs submit 플래그를 추가합니다.
- JOB_ARGS: (작업에 전달할
--
뒤에) 인수를 추가합니다.
예: Dataproc 드라이버 노드 그룹 클러스터의 SSH 터미널 세션에서 다음 예를 실행할 수 있습니다.
pi
값을 추정하는 Spark 작업gcloud dataproc jobs submit spark \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 1000
Spark 워드카운트 작업:
gcloud dataproc jobs submit spark \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --class=org.apache.spark.examples.JavaWordCount \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ -- 'gs://apache-beam-samples/shakespeare/macbeth.txt'
pi
값을 추정하는 PySpark 작업:gcloud dataproc jobs submit pyspark \ file:///usr/lib/spark/examples/src/main/python/pi.py \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ -- 1000
Hadoop TeraGen 맵리듀스 작업:
gcloud dataproc jobs submit hadoop \ --cluster=CLUSTER_NAME \ --region=REGION \ --driver-required-memory-mb=2048 \ --driver-required-vcores=2 \ --jar file:///usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \ -- teragen 1000 \ hdfs:///gen1/test
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: (필수사항) Google Cloud 프로젝트 ID입니다.
- REGION: (필수사항) Dataproc 클러스터 리전입니다.
- CLUSTER_NAME: (필수사항) 프로젝트 내에서 고유해야 하는 클러스터 이름입니다. 이름은 소문자로 시작해야 하며, 최대 51자(영문 기준)의 소문자, 숫자, 하이픈을 포함할 수 있습니다. 하이픈으로 끝나면 안 됩니다. 삭제된 클러스터의 이름을 재사용할 수 있습니다.
- DRIVER_MEMORY: (필수사항) 작업을 실행하는 데 필요한 작업 드라이버 메모리 양(MB)입니다(Yarn 메모리 제어 참조).
- DRIVER_VCORES: (필수사항) 작업을 실행하는 데 필요한 vCPU 수입니다.
pi
값을 추정하는 Spark 작업을 제출하는 데 필요한 필드가 포함됩니다.
HTTP 메서드 및 URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/jobs:submit
JSON 요청 본문:
{ "job": { "placement": { "clusterName": "CLUSTER_NAME", }, "driverSchedulingConfig": { "memoryMb]": DRIVER_MEMORY, "vcores": DRIVER_VCORES }, "sparkJob": { "jarFileUris": "file:///usr/lib/spark/examples/jars/spark-examples.jar", "args": [ "10000" ], "mainClass": "org.apache.spark.examples.SparkPi" } } }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ "reference": { "projectId": "PROJECT_ID", "jobId": "job-id" }, "placement": { "clusterName": "CLUSTER_NAME", "clusterUuid": "cluster-Uuid" }, "sparkJob": { "mainClass": "org.apache.spark.examples.SparkPi", "args": [ "1000" ], "jarFileUris": [ "file:///usr/lib/spark/examples/jars/spark-examples.jar" ] }, "status": { "state": "PENDING", "stateStartTime": "start-time" }, "jobUuid": "job-Uuid" }
작업 로그 보기
작업 상태를 확인하고 작업 문제를 디버깅하려면 gcloud CLI 또는 Google Cloud 콘솔을 사용하여 드라이버 로그를 확인하면 됩니다.
gcloud
작업 드라이버 로그는 작업 실행 중에 gcloud CLI 출력 또는 Google Cloud 콘솔로 스트리밍됩니다. 드라이버 로그는 Cloud Storage의 Dataproc 클러스터 스테이징 버킷에 유지됩니다.
다음 gcloud CLI 명령어를 실행하여 Cloud Storage의 드라이버 로그 위치를 나열합니다.
gcloud dataproc jobs describe JOB_ID \ --region=REGION
드라이버 로그의 Cloud Storage 위치는 명령어 결과에 다음 형식으로 driverOutputResourceUri
로 나열됩니다.
driverOutputResourceUri: gs://CLUSTER_STAGING_BUCKET/google-cloud-dataproc-metainfo/CLUSTER_UUID/jobs/JOB_ID
콘솔
노드 그룹 클러스터 로그를 보려면 다음 안내를 따르세요.
다음 로그 탐색기 쿼리 형식을 사용하여 로그를 찾을 수 있습니다.
다음을 바꿉니다.resource.type="cloud_dataproc_cluster" resource.labels.project_id="PROJECT_ID" resource.labels.cluster_name="CLUSTER_NAME" log_name="projects/PROJECT_ID/logs/LOG_TYPE>"
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- CLUSTER_NAME: 클러스터 이름입니다.
- LOG_TYPE:
- Yarn 사용자 로그:
yarn-userlogs
- Yarn 리소스 관리자 로그:
hadoop-yarn-resourcemanager
- Yarn 노드 관리자 로그:
hadoop-yarn-nodemanager
- Yarn 사용자 로그:
측정항목 모니터링
Dataproc 노드 그룹 작업 드라이버는 dataproc-driverpool
파티션 아래의 dataproc-driverpool-driver-queue
하위 큐에서 실행됩니다.
드라이버 노드 그룹 측정항목
다음 표에는 기본적으로 드라이버 노드 그룹에 대해 수집되는 연결된 노드 그룹 드라이버 측정항목이 나와 있습니다.
드라이버 노드 그룹 측정항목 | 설명 |
---|---|
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB |
dataproc-driverpool 파티션 아래의 dataproc-driverpool-driver-queue 에서 사용 가능한 메모리 양(메비바이트)입니다.
|
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers |
dataproc-driverpool 파티션 아래의 dataproc-driverpool-driver-queue 에서 대기 중인 큐에 추가된 컨테이너 수입니다. |
하위 큐 측정항목
다음 표에는 하위 큐 측정항목이 나와 있습니다. 이 측정항목은 기본적으로 드라이버 노드 그룹에 대해 수집되며 모든 Dataproc 클러스터에서 수집하도록 사용 설정될 수 있습니다.
하위 큐 측정항목 | 설명 |
---|---|
yarn:ResourceManager:ChildQueueMetrics:AvailableMB |
기본 파티션 아래의 이 큐에서 사용 가능한 메모리 양(메비바이트)입니다. |
yarn:ResourceManager:ChildQueueMetrics:PendingContainers |
기본 파티션 아래의 이 큐에서 (큐에 추가된) 대기 중인 컨테이너 수입니다. |
yarn:ResourceManager:ChildQueueMetrics:running_0 |
모든 파티션 아래의 이 큐에서 런타임이 0 ~60 분인 작업 수입니다. |
yarn:ResourceManager:ChildQueueMetrics:running_60 |
모든 파티션 아래의 이 큐에서 런타임이 60 ~300 분인 작업 수입니다. |
yarn:ResourceManager:ChildQueueMetrics:running_300 |
모든 파티션 아래의 이 큐에서 런타임이 300 ~1440 분인 작업 수입니다. |
yarn:ResourceManager:ChildQueueMetrics:running_1440 |
모든 파티션 아래의 이 큐에서 런타임이 1440 분을 초과하는 작업의 수입니다. |
yarn:ResourceManager:ChildQueueMetrics:AppsSubmitted |
모든 파티션 아래의 이 큐에 제출된 애플리케이션 수입니다. |
Google Cloud 콘솔에서 YARN ChildQueueMetrics
및 DriverPoolsQueueMetrics
를 보려면 다음 안내를 따르세요.
- 측정항목 탐색기에서 VM 인스턴스 → 커스텀 리소스를 선택합니다.
노드 그룹 작업 드라이버 디버깅
이 섹션에서는 드라이버 노드 그룹 조건 및 오류와 함께 조건 또는 오류를 수정하기 위한 추천을 제공합니다.
조건
조건:
yarn:ResourceManager:DriverPoolsQueueMetrics:AvailableMB
가0
에 가깝습니다. 이는 클러스터 드라이버 풀 큐에 메모리가 부족함을 나타냅니다.권장사항: 드라이버 풀의 크기를 확장하세요.
조건:
yarn:ResourceManager:DriverPoolsQueueMetrics:PendingContainers
가 0보다 큽니다. 이는 클러스터 드라이버 풀 큐에 메모리가 부족하고 YARN이 작업을 큐에 추가하고 있음을 나타낼 수 있습니다.권장사항: 드라이버 풀의 크기를 확장하세요.
오류
오류:
Cluster <var>CLUSTER_NAME</var> requires driver scheduling config to run SPARK job because it contains a node pool with role DRIVER. Positive values are required for all driver scheduling config values.
권장사항:
driver-required-memory-mb
및driver-required-vcores
를 양수로 설정합니다.오류:
Container exited with a non-zero exit code 137
권장사항:
driver-required-memory-mb
를 작업 메모리 사용량으로 늘리세요.