Управление конфигурацией кластера

Внимание

Эта функция в настоящее время доступна для предварительного ознакомления. Дополнительные условия использования для предварительных версий Microsoft Azure включают более юридические термины, применимые к функциям Azure, которые находятся в бета-версии, в предварительной версии или в противном случае еще не выпущены в общую доступность. Сведения об этой конкретной предварительной версии см. в статье Azure HDInsight в предварительной версии AKS. Для вопросов или предложений функций отправьте запрос на AskHDInsight с подробными сведениями и следуйте за нами для получения дополнительных обновлений в сообществе Azure HDInsight.

HDInsight в AKS позволяет настраивать свойства конфигурации для повышения производительности кластера с определенными параметрами. Например, параметры использования или памяти. Доступны следующие действия.

  • Обновите существующие конфигурации или добавьте новые конфигурации.
  • Экспорт конфигураций с помощью REST API.

Настройка конфигураций

Конфигурации можно настроить с помощью следующих параметров:

Используя портал Azure

  1. Войдите на портал Azure.

  2. В строке поиска портал Azure введите "HDInsight в кластере AKS" и выберите "Azure HDInsight в кластерах AKS" в раскрывающемся списке.

    Снимок экрана: параметр поиска для начала работы с HDInsight в кластере AKS.

  3. Выберите имя кластера на странице списка.

    Снимок экрана: выбор HDInsight в кластере AKS, который требуется в списке.

  4. Перейдите в колонку "Управление конфигурацией" в меню слева.

    Снимок экрана: вкладка

  5. В зависимости от типа кластера перечислены файлы конфигураций. Дополнительные сведения см. в конфигурациях Trino, Flink и Spark.

  6. Добавьте новую или обновите существующую пару "ключ-значение" для конфигураций, которые требуется изменить.

  7. Нажмите кнопку "ОК " и нажмите кнопку "Сохранить".

Примечание.

Для отражения изменений в некоторых изменениях конфигурации может потребоваться перезапуск службы.

Использование шаблона ARM

Необходимые компоненты

В шаблоне ARM можно изменить serviceConfigsProfiles и указать имя файла конфигурации OSS со значением, которое вы хотите перезаписать.

Если файл конфигурации OSS находится в формате JSON/XML/YAML, можно указать имя файла конфигурации OSS с помощью fileName. Укажите пары значений ключей, которые необходимо перезаписать в "значения".

Ниже приведены некоторые примеры для каждой рабочей нагрузки:

Пример конфигурации 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, чтобы запустить 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-адрес запроса Get.

    $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

    Примечание.

    Вы можете получить идентификатор ресурса и актуальную версию API из представления JSON кластера в портал Azure.

    Снимок экрана: кнопки представления стоимости JSON.

  4. Отправьте запрос GET, выполнив следующую команду.

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