Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описано, как создать кластер с поддержкой прокси-сервера Apache Kafka REST в Azure HDInsight с помощью Azure CLI. Azure HDInsight — это управляемая комплексная служба аналитики с открытым кодом, предназначенная для предприятий. Apache Kafka — это платформа распределенной потоковой передачи с открытым кодом. Она часто используется как брокер сообщений, предоставляя такие же функциональные возможности, как и очередь сообщений типа "публикация-подписка". Прокси-сервер REST Kafka позволяет взаимодействовать с кластером Kafka через REST API по протоколу HTTP. Azure CLI — это кроссплатформенная интерфейс командной строки Майкрософт для управления ресурсами Azure.
API Apache Kafka доступен только ресурсам, размещенным в той же виртуальной сети. Вы можете получить доступ к кластеру напрямую с помощью SSH. Чтобы подключить к Apache Kafka другие службы, сети или виртуальные машины, необходимо сначала создать виртуальную сеть, а затем создать в ней эти ресурсы. Дополнительные сведения см. в разделе "Подключение к Apache Kafka" с помощью виртуальной сети.
Из этого руководства вы узнаете:
- Предварительные требования для прокси-сервера REST Kafka
- Создание кластера Apache Kafka с помощью Azure CLI
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Предпосылки
Приложение, зарегистрированное с идентификатором Microsoft Entra. Клиентские приложения, которые вы пишете для взаимодействия с прокси-сервером REST Kafka, будут использовать идентификатор и секрет этого приложения для аутентификации в Azure. Подробнее см. статью о регистрации приложения на платформе удостоверений Майкрософт.
Группа безопасности Microsoft Entra с зарегистрированным приложением в качестве члена. Эта группа безопасности будет использоваться для управления тем, какие приложения могут взаимодействовать с прокси-сервером REST. Дополнительные сведения о создании групп Microsoft Entra см. в статье "Создание базовой группы" и добавление участников с помощью идентификатора Microsoft Entra.
Azure CLI. Убедитесь, что у вас есть по крайней мере версия 2.0.79. Подробнее см. статью Установка Azure CLI.
Создание кластера Apache Kafka
Войдите в свою подписку Azure.
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"Задайте переменные среды. Использование переменных в этом руководстве основано на Bash. Для других сред потребуются небольшие изменения.
Переменная Описание resourceGroupName Замените RESOURCEGROUPNAME именем новой группы ресурсов. расположение Замените LOCATION регионом, в котором будет создан кластер. Для списка допустимых расположений используйте az account list-locationsкомандуИмя кластера Замените CLUSTERNAME глобальным уникальным именем для нового кластера. storageAccount Замените STORAGEACCOUNTNAME именем новой учетной записи хранения. httpPassword Замените PASSWORD паролем для имени входа в кластер, администратора. sshPassword Замените ПАРОЛЬ паролем для имени пользователя безопасной оболочки sshuser. securityGroupName Замените SECURITYGROUPNAME именем группы безопасности Microsoft Entra для прокси-сервера REST Kafka. Переменная будет передана параметру --kafka-client-group-nameдляaz-hdinsight-create.securityGroupID Замените SECURITYGROUPID идентификатором группы безопасности Microsoft Entra для прокси-сервера REST Kafka. Переменная будет передана параметру --kafka-client-group-idдляaz-hdinsight-create.storageContainer Контейнер хранилища, который будет использоваться кластером, оставьте как есть для этого руководства. Эта переменная будет задана с именем кластера. workernodeCount Количество рабочих узлов в кластере оставьте as-is для этого руководства. Для обеспечения высокой доступности Kafka требует не менее 3 рабочих узлов тип кластера Тип кластера HDInsight, оставьте как есть для этого урока. clusterVersion Версию кластера HDInsight оставьте как есть для этого руководства. Для прокси-сервера REST Kafka требуется минимальная версия кластера 4.0. componentVersion Версию Kafka оставьте без изменений для этого руководства. Для прокси-сервера REST Kafka требуется минимальная версия компонента 2.1. Обновите переменные с нужными значениями. Затем введите команды CLI, чтобы задать переменные среды.
export resourceGroupName=RESOURCEGROUPNAME export location=LOCATION export clusterName=CLUSTERNAME export storageAccount=STORAGEACCOUNTNAME export httpPassword='PASSWORD' export sshPassword='PASSWORD' export securityGroupName=SECURITYGROUPNAME export securityGroupID=SECURITYGROUPID export storageContainer=$(echo $clusterName | tr "[:upper:]" "[:lower:]") export workernodeCount=3 export clusterType=kafka export clusterVersion=4.0 export componentVersion=kafka=2.1Создайте группу ресурсов , введя следующую команду:
az group create \ --location $location \ --name $resourceGroupNameСоздайте учетную запись хранения Azure , введя следующую команду:
# Note: kind BlobStorage is not available as the default storage account. az storage account create \ --name $storageAccount \ --resource-group $resourceGroupName \ --https-only true \ --kind StorageV2 \ --location $location \ --sku Standard_LRSИзвлеките первичный ключ из учетной записи хранения Azure и сохраните его в переменной, введя следующую команду:
export storageAccountKey=$(az storage account keys list \ --account-name $storageAccount \ --resource-group $resourceGroupName \ --query [0].value -o tsv)Создайте контейнер службы хранилища Azure , введя следующую команду:
az storage container create \ --name $storageContainer \ --account-key $storageAccountKey \ --account-name $storageAccountСоздайте кластер HDInsight. Перед вводом команды обратите внимание на следующие параметры:
Обязательные параметры для кластеров Kafka:
Параметр Описание --type Значение должно быть Kafka. --workernode-data-disks-per-node Количество дисков данных, используемых для каждого рабочего узла. HDInsight Kafka поддерживается только с дисками данных. В этом руководстве используется значение 2. Обязательные параметры для прокси-сервера REST Kafka:
Параметр Описание --kafka-management-node-size Размер узла. В этом руководстве используется значение Standard_D4_v2. --kafka-client-group-id Идентификатор группы безопасности клиента Microsoft Entra для прокси-сервера REST Kafka. Значение передается из переменной $securityGroupID. --kafka-client-group-name Имя группы безопасности клиента Microsoft Entra для прокси-сервера Kafka REST. Значение передается из переменной $securityGroupName. --version Версия кластера HDInsight должна быть не менее 4.0. Значение передается из переменной $clusterVersion. --component-version Версия Kafka должна быть не менее 2.1. Значение передается из переменной $componentVersion. Если вы хотите создать кластер без прокси-сервера REST, исключить
--kafka-management-node-size--kafka-client-group-idи--kafka-client-group-nameизaz hdinsight createкоманды.Если у вас есть существующая виртуальная сеть, добавьте параметры
--vnet-nameи--subnet, а также их значения.
Введите следующую команду, чтобы создать кластер:
az hdinsight create \ --name $clusterName \ --resource-group $resourceGroupName \ --type $clusterType \ --component-version $componentVersion \ --http-password $httpPassword \ --http-user admin \ --location $location \ --ssh-password $sshPassword \ --ssh-user sshuser \ --storage-account $storageAccount \ --storage-account-key $storageAccountKey \ --storage-container $storageContainer \ --version $clusterVersion \ --workernode-count $workernodeCount \ --workernode-data-disks-per-node 2 \ --kafka-management-node-size "Standard_D4_v2" \ --kafka-client-group-id $securityGroupID \ --kafka-client-group-name "$securityGroupName"Для завершения процесса создания кластера может потребоваться несколько минут. Обычно около 15.
Очистка ресурсов
После завершения работы с этой статьей кластер можно удалить. В случае с HDInsight ваши данные хранятся в службе хранилища Azure, что позволяет безопасно удалить неиспользуемый кластер. Плата за кластеры HDInsight взимается, даже когда они не используются. Так как затраты на кластер во много раз превышают затраты на хранилище, экономически целесообразно удалять неиспользуемые кластеры.
Введите все следующие команды или некоторые из них, чтобы удалить ресурсы:
# Remove cluster
az hdinsight delete \
--name $clusterName \
--resource-group $resourceGroupName
# Remove storage container
az storage container delete \
--account-name $storageAccount \
--name $storageContainer
# Remove storage account
az storage account delete \
--name $storageAccount \
--resource-group $resourceGroupName
# Remove resource group
az group delete \
--name $resourceGroupName
Дальнейшие действия
Теперь, когда вы успешно создали кластер прокси-сервера Apache Kafka REST в Azure HDInsight с помощью Azure CLI, используйте код Python для взаимодействия с прокси-сервером REST: