다음을 통해 공유


Trino 구성 관리

중요하다

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

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

중요하다

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

AKS에서 HDInsight를 사용하는 Trino 클러스터는 오픈 소스 Trino의 대부분의 기본 구성과 함께 제공됩니다. 이 문서에서는 구성 파일을 업데이트하는 방법을 설명하고 사용자 고유의 추가 구성 파일을 클러스터에 추가합니다.

다음 두 가지 방법으로 구성을 추가/업데이트할 수 있습니다.

메모

AKS에서 HDInsight를 사용하는 Trino는 특정 구성을 적용하고 일부 파일 및/또는 속성의 수정을 금지합니다. 이 작업은 구성을 통해 적절한 보안/연결을 보장하기 위해 수행됩니다. 금지된 파일/속성의 예는 다음을 포함하지만 제한되지는 않습니다.

  • 힙 크기 설정을 제외하고 jvm.config 파일.
  • Node.properties: node.id, node.data-dir, log.path 등
  • Config.properties: http-server.authentication.*, http-server.https.* etc.

Azure Portal 사용

Azure Portal에서는 세 가지 표준 Trino 구성 집합을 수정할 수 있습니다.

  • log.properties
  • config.properties
  • node.properties

다음 단계에 따라 구성을 수정합니다.

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

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

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

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

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

  4. "구성 관리" 블레이드로 이동합니다.

    Azure Portal 구성 관리를 보여 주는 스크린샷

  5. 새로 추가하거나 수정하려는 구성에 대한 기존 키 값 쌍을 업데이트합니다. 예를 들어 config.properties -> 사용자 지정 구성 -> "추가"를 클릭하여 새 구성 설정을 추가한 다음 확인을 클릭합니다.

    사용자 지정 구성을 보여 주는 스크린샷

  6. "저장"을 클릭하여 구성을 저장합니다.

    구성을 저장하는 방법을 보여 주는 스크린샷

ARM 템플릿 사용

필수 구성 요소

클러스터 관리

모든 Trino 구성은 properties.clusterProfile아래의 serviceConfigsProfiles.serviceName[“trino”]에 지정할 수 있습니다.

다음 예제에서는 coordinator/worker/miscfiles중점을 둡니다. 카탈로그의 경우 기존 클러스터에 카탈로그 추가참조하세요.

"serviceConfigsProfiles": [
    {
        "serviceName": "trino",
        "configs": [
            {
                "component": "catalogs",
                "files": [<file-spec>,…]
            },
            {
                "component": "coordinator",
                "files": [<file-spec>,…]
            },
            {
                "component": "worker",
                "files": [<file-spec>,…]
            },
            {
                "component": " miscfiles",
                "files": [<file-spec>,…]
            },
        ]
    }
]

다양한 구성 측면을 제어하는 몇 가지 구성 요소가 있습니다.

구성 요소 이름 각 파일 사양에 대한 필수/허용 속성 묘사
일반적인 filename, values 코디네이터와 작업자 모두에 대한 구성 파일을 포함합니다.
조정자 filename, values 코디네이터 전용 구성 파일이 포함되어 있으며, 존재하는 경우 공통 구성을 재정의합니다.
노동자 filename, values 작업자에 대한 구성 파일만 포함하며, 공통 구성이 존재하는 경우 이를 재정의합니다.
miscfiles filename, content 전체 클러스터에 대해 사용자가 제공한 기타 구성 파일을 포함합니다.
카탈로그 filename, 콘텐츠 또는 값 전체 클러스터에 대한 카탈로그 파일을 포함합니다.

다음 예제에서는 다음을 보여 줍니다.

  • 클러스터의 기본 node.environment 설정을 재정의합니다 (Trino UI에 표시됨).
  • 코디네이터 및 작업자의 기본 config.properties 값을 재정의합니다.
  • 샘플 리소스 그룹 json을 추가하고 이를 사용하도록 코디네이터를 구성합니다.
"serviceConfigsProfiles": [
    {
        "serviceName": "trino",
        "configs": [
            {
                "component": "common",
                "files": [
                    {
                        "fileName": "node.properties",
                        "values": {
                            "node.environment": "preview"
                        }
                    },
                    {
                        "fileName": "config.properties",
                        "values": {
                            "join-distribution-type": "AUTOMATIC",
                            "query.max-execution-time": "5d",
                            "shutdown.grace-period": "5m"
                        }
                    }
                ]                
            },
            {
                "component": "coordinator",
                "files": [
                    {
                        "fileName": "resource-groups.properties",
                        "values": {
                            "resource-groups.configuration-manager": "file",
                            "resource-groups.config-file": "${MISC:resource-groups}"
                        }                                            
                    }
                ]
            },
            {
                "component": "miscfiles",
                "files": [
                    {
                        "fileName": "resource-groups",
                        "path": "/customDir/resource-groups.json",
                        "content": "{\"rootGroups\":[{\"name\":\"global\",\"softMemoryLimit\":\"80%\",\"hardConcurrencyLimit\":100,\"maxQueued\":1000,\"schedulingPolicy\":\"weighted\",\"jmxExport\":true,\"subGroups\":[{\"name\":\"data_definition\",\"softMemoryLimit\":\"10%\",\"hardConcurrencyLimit\":5,\"maxQueued\":100,\"schedulingWeight\":1},{\"name\":\"adhoc\",\"softMemoryLimit\":\"10%\",\"hardConcurrencyLimit\":50,\"maxQueued\":1,\"schedulingWeight\":10,\"subGroups\":[{\"name\":\"other\",\"softMemoryLimit\":\"10%\",\"hardConcurrencyLimit\":2,\"maxQueued\":1,\"schedulingWeight\":10,\"schedulingPolicy\":\"weighted_fair\",\"subGroups\":[{\"name\":\"${USER}\",\"softMemoryLimit\":\"10%\",\"hardConcurrencyLimit\":1,\"maxQueued\":100}]}]}]},{\"name\":\"admin\",\"softMemoryLimit\":\"100%\",\"hardConcurrencyLimit\":50,\"maxQueued\":100,\"schedulingPolicy\":\"query_priority\",\"jmxExport\":true}],\"selectors\":[{\"group\":\"global.adhoc.other.${USER}\"}],\"cpuQuotaPeriod\":\"1h\"}"
                    }
                ]
            }
        ]
    }

클러스터의 변경 내용을 반영하도록 업데이트된 ARM 템플릿을 배포합니다. ARM 템플릿 배포하는 방법을 알아봅니다.