Trino の構成管理

重要

現在、この機能はプレビュー段階にあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加の使用条件」に記載されています。 この特定のプレビューについては、Azure HDInsight on AKS のプレビュー情報に関する記事を参照してください。 質問や機能の提案については、詳細を記載した要求を AskHDInsight で送信してください。また、その他の更新情報については、Azure HDInsight コミュニティをフォローしてください。

HDInsight on AKS を使用した Trino クラスターには、オープンソース Trino の既定の構成のほとんどが用意されています。 この記事では、構成ファイルを更新し、独自の補足構成ファイルをクラスターに追加する方法について説明します。

構成は、次の 2 つの方法で追加または更新できます。

Note

HDInsight on AKS を使用した 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 の構成の次の 3 つの標準セットを変更できます。

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

構成を変更するには、次のステップに従います。

  1. Azure ポータルにサインインします。

  2. Azure portal の検索バーに「HDInsight on AKS クラスター」と入力し、ドロップダウン リストから [Azure HDInsight on AKS クラスター] を選択します。

    HDInsight on AKS クラスターの使用を開始するための検索オプションを示すスクリーンショット。

  3. リスト ページからクラスター名を選択します。

    一覧から必要な HDInsight on AKS クラスターを選ぶ方法を示すスクリーンショット。

  4. [構成管理] ブレードに移動します。

    Azure portal の構成管理を示すスクリーンショット。

  5. 変更する構成の新しいキーと値のペアを追加するか、既存のキーと値のペアを更新します。 たとえば、config.properties -> [カスタム構成] -> [追加] をクリックして新しい構成設定を追加し、[OK] をクリックします。

    カスタム構成を示すスクリーンショット。

  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>,…]
            },
        ]
    }
]

さまざまな構成の側面を制御する次のようなコンポーネントがあります。

コンポーネント名 各ファイル スペックで必要な/許可されるプロパティ 説明
一般 filenamevalues コーディネーターと worker の両方の構成ファイルが含まれています。
コーディネーター filenamevalues コーディネーター専用の構成ファイルが含まれており、存在する場合は一般的にオーバーライドされます。
worker filenamevalues worker 専用の構成ファイルが含まれており、存在する場合は一般的にオーバーライドされます。
miscfiles filenamecontent クラスター全体に対してユーザーによって提供されるその他の構成ファイルが含まれています。
catalogs filename、コンテンツまたは値 クラスター全体のカタログ ファイルが含まれています。

その具体的な例を次に示します:

  • クラスターの既定の node.environment をオーバーライドします (Trino UI に表示されます)。
  • コーディネーターと worker の既定の 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 テンプレートをデプロイする方法を確認してください。