Share via


클러스터 구성 관리

Important

이 기능은 현지 미리 보기로 제공됩니다. Microsoft Azure 미리 보기에 대한 보충 사용 약관에는 베타 또는 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 더 많은 약관이 포함되어 있습니다. 이 특정 미리 보기에 대한 자세한 내용은 Azure HDInsight on AKS 미리 보기 정보를 참조하세요. 질문이나 기능 제안이 있는 경우 AskHDInsight에서 세부 정보와 함께 요청을 제출하고 Azure HDInsight 커뮤니티에서 더 많은 업데이트를 확인하세요.

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

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

구성 사용자 지정

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

Azure Portal 사용

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

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

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

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

    목록에서 필요한 HDInsight on AKS 클러스터를 선택하는 것을 보여 주는 스크린샷.

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

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

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

  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 변수를 Get 요청 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 및 최신 api-version을 가져올 수 있습니다.

    비용 JSON 보기 단추를 보여 주는 스크린샷.

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

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