다음을 통해 공유


클러스터 구성 관리

중요하다

AKS의 Azure HDInsight는 2025년 1월 31일에 사용 중지되었습니다. 이 공지 을 통해에 대해 자세히 알아보세요.

워크로드가 갑자기 종료되는 것을 방지하기 위해 워크로드를 Microsoft Fabric 또는 동등한 Azure 제품으로 워크로드를 마이그레이션해야 합니다.

중요하다

이 기능은 현재 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 추가 사용 약관은 베타 버전, 프리뷰 상태에 있거나 일반적으로 출시되지 않은 Azure 기능에 적용되는 추가적인 법적 조건을 포함합니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight on AKS 미리 보기 정보을 참조하세요. 질문이나 기능 제안이 있을 경우, AskHDInsight에 요청을 제출해 주시고, 더 많은 업데이트를 받으시려면 Azure HDInsight Community 을 팔로우해 주세요.

AKS의 HDInsight를 사용하면 구성 속성을 조정하여 특정 설정을 사용하여 클러스터의 성능을 향상시킬 수 있습니다. 예를 들어 사용량 또는 메모리 설정입니다. 다음 작업을 수행할 수 있습니다.

  • 기존 구성을 업데이트하거나 새 구성을 추가합니다.
  • REST API를 사용하여 구성을 내보냅니다.

구성 사용자 지정

다음 옵션을 사용하여 구성을 사용자 지정할 수 있습니다.

Azure Portal 사용

  1. Azure 포털에로그인합니다.

  2. Azure Portal 검색 창의 드롭다운 목록에서 "AKS 클러스터의 HDInsight"를 입력하고 "AKS 클러스터의 Azure HDInsight"를 선택합니다.

    AKS 클러스터에서 HDInsight를 시작하기 위한 검색 옵션을 보여 주는 스크린샷

  3. 목록 페이지에서 클러스터 이름을 선택합니다.

    목록에서 필요한 AKS 클러스터의 HDInsight 선택을 보여 주는 스크린샷

  4. 왼쪽 메뉴의 "구성 관리" 블레이드로 이동합니다.

    구성 관리 탭을 보여 주는 스크린샷.

  5. 클러스터 유형에 따라 구성 파일이 나열됩니다. 자세한 내용은 Trino, FlinkSpark 구성을 참조하세요.

  6. 새로 추가하거나 수정하려는 구성에 대한 기존 키-값 쌍을 업데이트합니다.

  7. 확인 선택한 다음 저장을 클릭합니다.

메모

일부 구성 변경은 변경 내용을 반영하기 위해 서비스를 다시 시작해야 할 수 있습니다.

ARM 템플릿 사용

필수 구성 요소

ARM 템플릿에서 serviceConfigsProfiles 편집하고 덮어쓰려는 값으로 OSS 구성 파일 이름을 지정할 수 있습니다.

OSS 구성 파일이 JSON/XML/YAML 형식인 경우 fileName통해 OSS 구성 파일 이름을 제공할 수 있습니다. "값"에서 덮어쓰려는 키 값 쌍을 제공합니다.

각 워크로드에 대한 몇 가지 샘플은 다음과 같습니다.

Flink 구성 예제:

 "serviceConfigsProfiles": [
                {
                    "serviceName": "flink-operator",
                    "configs": [
                        {
                            "component": "flink-configs",
                            "files": [
                                {
                                    "fileName": "flink-conf.yaml",
                                    "values": {
                                        "taskmanager.memory.process.size": "4096mb",
                                        "classloader.check-leaked-classloader": "false",
                                        "jobmanager.memory.process.size": "4096mb",
                                        "classloader.parent-first-patterns.additional": "org.apache.parquet"
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]

Spark 구성 예제:

  "serviceConfigsProfiles": [
                {
                    "serviceName": "spark-service",
                    "configs": [
                        {
                            "component": "livy-config",
                            "files": [
                                {
                                    "fileName": "livy-client.conf",
                                    "values": {
                                        "livy.client.http.connection.timeout": "11s"
                                    }
                                }
                            ]
                        },
                        {
                            "component": "spark-config",
                            "files": [
                                {
                                    "fileName": "spark-env.sh",
                                    "content": "# - SPARK_HISTORY_OPTS, to set config properties only for the history server (e.g. \"-Dx=y\")\nexport HDP_VERSION=3.3.3.5.2-83515052\n"
                                }
                            ]
                        }
                    ]
                }
          ]

Trino 구성 예제:

 "serviceConfigsProfiles": [
                {
                    "serviceName": "trino",
                    "configs": [
                        {
                            "component": "coordinator",
                            "files": [
                                {
                                    "fileName": "config.properties",
                                    "values": {
                                        "query.cache.enabled": "true",
                                        "query.cache.ttl": "1h",
                                        "query.enable-multi-statement-set-session": "true",
                                        "query.max-memory": "301GB"
                                    }
                                },
                                {
                                    "fileName": "log.properties",
                                    "values": {
                                        "io.trino": "INFO"
                                    }
                                }
                            ]
                        }
          ]

Trino 구성 옵션에 대한 자세한 내용은 샘플 ARM 템플릿을 참조하세요.

REST API를 사용하여 구성 내보내기

클러스터 구성을 내보내 기본값과 업데이트된 값을 확인할 수도 있습니다. 현재 REST API를 통해서만 구성을 내보낼 수 있습니다.

클러스터 구성 가져오기:

GET Request: /subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTERPOOL}}/clusters/{{CLUSTERNAME}}/serviceConfigs?api-version={{HDINSIGHTONAKS_API_VERSION}}

REST API 호출을 보내는 방법을 잘 모르는 경우 다음 단계를 통해 도움이 될 수 있습니다.

  1. Azure Portal의 오른쪽 위에 있는 다음 단추를 클릭하여 Azure Cloud Shell을 시작합니다.

    Cloud Shell 아이콘을 보여 주는 스크린샷

  2. Cloud Shell이 왼쪽 위에 있는 PowerShell로 설정되어 있는지 확인합니다. 다음 명령을 실행하여 토큰을 가져오고 HTTP 요청 헤더를 설정합니다.

    $azContext = Get-AzContext
    $azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
    
    $profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
    $token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
    $authHeader = @{
        'Content-Type'='application/json'
        'Authorization'='Bearer ' + $token.AccessToken
    }
    
  3. $restUri 변수를 요청 가져오기 URL로 설정합니다.

    $restUri = 
    'https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTERPOOL}}/clusters/{{CLUSTERNAME}}/serviceConfigs?api-version={{HDINSIGHTONAKS_API_VERSION}}'
    

    예: $restUri = 'https://management.azure.com/subscriptions/xxx-yyyy-zzz-00000/resourceGroups/contosoRG/providers/Microsoft.HDInsight/clusterpools/contosopool/clusters/contosocluster/serviceConfigs?api-version=2021-09-15-preview

    메모

    Azure Portal에서 클러스터의 "JSON 보기"에서 리소스 ID 및 up-to-date api-version을 가져올 수 있습니다.

    스크린샷 보기 비용 JSON 보기 단추.

  4. 다음 명령을 실행하여 GET 요청을 보냅니다.

    Invoke-RestMethod -Uri $restUri -Method Get -Headers $authHeader | ConvertTo-Json -Depth 10