사전 초기화된 용량 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사전 초기화된 용량

EMR Serverless는 드라이버와 작업자를 사전 초기화하고 몇 초 만에 응답할 수 있도록 하는 선택적 기능을 제공합니다. 이렇게 하면 애플리케이션에 대한 작업자의 웜 풀이 효과적으로 생성됩니다. 이 기능을 사전 초기화된 용량 이라고 합니다. 이 기능을 구성하려면 애플리케이션의 initialCapacity 파라미터를 사전 초기화할 작업자 수로 설정할 수 있습니다. 작업자 용량이 미리 초기화되면 작업이 즉시 시작됩니다. 반복 애플리케이션 및 시간에 민감한 작업을 구현하려는 경우에 적합합니다.

작업을 제출할 때 의 작업자initialCapacity를 사용할 수 있는 경우 작업은 해당 리소스를 사용하여 실행을 시작합니다. 이러한 작업자가 이미 다른 작업에서 사용 중이거나 작업에 에서 사용할 수 있는 것보다 많은 리소스가 필요한 경우 애플리케이션은 추가 작업자initialCapacity를 요청하고 가져옵니다. 작업이 실행을 완료하면 작업이 사용한 작업자를 해제하고 애플리케이션에 사용할 수 있는 리소스 수가 로 반환됩니다initialCapacity. 애플리케이션은 작업이 실행을 완료한 후에도 리소스initialCapacity의 를 유지합니다. 애플리케이션은 작업을 더 이상 실행할 필요가 없을 initialCapacity 때 초과 리소스를 릴리스합니다.

사전 초기화된 용량을 사용할 수 있으며 애플리케이션이 시작되면 바로 사용할 수 있습니다. 애플리케이션이 중지되면 미리 초기화된 용량이 비활성화됩니다. 요청된 사전 초기화 용량이 생성되어 사용할 준비가 된 경우에만 애플리케이션이 STARTED 상태로 이동합니다. 애플리케이션이 STARTED 상태에 있는 전체 시간 동안 EMR Serverless는 미리 초기화된 용량을 작업 또는 대화형 워크로드에서 사용하거나 사용할 수 있도록 유지합니다. 이 기능은 릴리스되거나 실패한 컨테이너의 용량을 복원합니다. 이렇게 하면 InitialCapacity 파라미터가 지정하는 작업자 수가 유지됩니다. 미리 초기화된 용량이 없는 애플리케이션의 상태는 에서 CREATED로 즉시 변경될 수 있습니다STARTED.

특정 기간 동안 사용하지 않고 기본값이 15분인 경우 미리 초기화된 용량을 해제하도록 애플리케이션을 구성할 수 있습니다. 새 작업을 제출하면 중지된 애플리케이션이 자동으로 시작됩니다. 애플리케이션을 생성할 때 이러한 자동 시작 및 중지 구성을 설정하거나 애플리케이션이 CREATED 또는 STOPPED 상태일 때 변경할 수 있습니다.

InitialCapacity 카운트를 변경하고 각 작업자에 대해 CPU, 메모리 및 디스크와 같은 컴퓨팅 구성을 지정할 수 있습니다. 부분 수정할 수 없으므로 값을 변경할 때 모든 컴퓨팅 구성을 지정해야 합니다. 애플리케이션이 CREATED 또는 STOPPED 상태에 있는 경우에만 구성을 변경할 수 있습니다.

참고

애플리케이션의 리소스 사용을 최적화하려면 컨테이너 크기를 미리 초기화된 용량 작업자 크기에 맞게 조정하는 것이 좋습니다. 예를 들어 Spark 실행기 크기를 2CPUs로 구성하고 메모리를 8GB로 구성하지만 미리 초기화된 용량 작업자 크기가 4CPUs이고 메모리가 16GB인 경우 Spark 실행기는 이 작업에 할당될 때 작업자 리소스의 절반만 사용합니다.

Spark 및 Hive의 사전 초기화된 용량 사용자 지정

특정 빅 데이터 프레임워크에서 실행되는 워크로드에 대해 사전 초기화된 용량을 추가로 사용자 지정할 수 있습니다. 예를 들어 Apache Spark에서 워크로드가 실행되는 경우 드라이버로 시작하는 작업자 수와 실행자로 시작하는 작업자 수를 지정할 수 있습니다. 마찬가지로 Apache Hive를 사용하는 경우 Hive 드라이버로 시작하는 작업자 수와 Tez 작업을 실행해야 하는 작업자 수를 지정할 수 있습니다.

사전 초기화된 용량으로 Apache Hive를 실행하는 애플리케이션 구성

다음 API 요청은 Amazon EMR 릴리스 emr-6.6.0을 기반으로 Apache Hive를 실행하는 애플리케이션을 생성합니다. 애플리케이션은 각각 2vCPU 및 4GB의 메모리가 있는 미리 초기화된 Hive 드라이버 5개와 각각 4vCPU 및 8GB의 메모리가 있는 미리 초기화된 Tez 작업 작업자 50개로 시작합니다. 이 애플리케이션에서 Hive 쿼리가 실행되면 먼저 미리 초기화된 작업자를 사용하고 즉시 실행을 시작합니다. 미리 초기화된 모든 작업자가 바쁘고 더 많은 Hive 작업이 제출된 경우 애플리케이션은 총 400vCPU 및 1,024GB의 메모리로 확장할 수 있습니다. 선택적으로 DRIVER 또는 TEZ_TASK 작업자의 용량을 생략할 수 있습니다.

aws emr-serverless create-application \ --type "HIVE" \ --name my-application-name \ --release-label emr-6.6.0 \ --initial-capacity '{ "DRIVER": { "workerCount": 5, "workerConfiguration": { "cpu": "2vCPU", "memory": "4GB" } }, "TEZ_TASK": { "workerCount": 50, "workerConfiguration": { "cpu": "4vCPU", "memory": "8GB" } } }' \ --maximum-capacity '{ "cpu": "400vCPU", "memory": "1024GB" }'

사전 초기화된 용량으로 Apache Spark를 실행하는 애플리케이션 구성

다음 API 요청은 Amazon EMR 릴리스 6.6.0을 기반으로 Apache Spark 3.2.0을 실행하는 애플리케이션을 생성합니다. 애플리케이션은 각각 2vCPU 및 4GB 메모리가 있는 사전 초기화된 Spark 드라이버 5개와 각각 4vCPU 및 8GB 메모리가 있는 사전 초기화된 실행기 50개로 시작합니다. Spark 작업이 이 애플리케이션에서 실행되면 먼저 미리 초기화된 작업자를 사용하고 즉시 실행을 시작합니다. 미리 초기화된 작업자가 모두 사용 중이고 더 많은 Spark 작업이 제출된 경우 애플리케이션은 총 400vCPU 및 1,024GB의 메모리로 확장할 수 있습니다. 또는 의 용량을 선택적으로 생략DRIVER할 수 있습니다EXECUTOR.

참고

Spark는 기본값이 10%인 구성 가능한 메모리 오버헤드를 드라이버 및 실행기에 요청된 메모리에 추가합니다. 작업이 미리 초기화된 작업자를 사용하려면 초기 용량 메모리 구성이 작업 및 오버헤드 요청 메모리보다 커야 합니다.

aws emr-serverless create-application \ --type "SPARK" \ --name my-application-name \ --release-label emr-6.6.0 \ --initial-capacity '{ "DRIVER": { "workerCount": 5, "workerConfiguration": { "cpu": "2vCPU", "memory": "4GB" } }, "EXECUTOR": { "workerCount": 50, "workerConfiguration": { "cpu": "4vCPU", "memory": "8GB" } } }' \ --maximum-capacity '{ "cpu": "400vCPU", "memory": "1024GB" }'