Миграция локальных кластеров Apache Hadoop в HDInsight Azure — рекомендации по использованию инфраструктуры
В этой статье представлены рекомендации по управлению инфраструктуры кластеров Azure HDInsight. Это часть цикла, где приведены лучшие методики, применимые при перемещении локальных систем Apache Hadoop в Azure HDInsight.
Планирование емкости кластера HDInsight
Ниже перечислены ключевые варианты для планирования пропускной способности кластера HDInsight.
Регион
Регион Azure определяет место физической подготовки кластера. Чтобы свести к минимуму задержки при чтении и записи, кластер должен находиться в том же регионе, что и данные.
Расположение и размер хранилища
Хранилище по умолчанию должно находиться в том же регионе, что и кластер. Для кластера с 48 узлами рекомендуется иметь 4–8 учетных записей хранения. Хотя общий объем хранилища уже может быть вполне достаточным, каждая учетная запись хранения обеспечивает дополнительную пропускную способность сети для вычислительных узлов. При наличии нескольких учетных записей хранения используйте случайное имя без префикса для каждой из них. Назначение случайного именования — уменьшить вероятность возникновения узких мест в хранилище (и регулирования) и типичных сбоев во всех учетных записях. Для повышения производительности используйте только один контейнер на учетную запись хранения.
Размер и тип виртуальной машины (теперь поддерживает серию G)
У каждого типа кластера имеется набор типов узлов, и у каждого типа узла имеются определенные параметры, определяющие размер и тип виртуальной машины. Размер и тип виртуальной машины определяется вычислительной мощностью ЦП, объемом оперативной памяти и задержкой сети. Модифицированную рабочую нагрузку можно использовать для определения оптимального размера и типа виртуальной машины для каждого типа узла.
Количество рабочих узлов
Начальное количество рабочих узлов можно определить с помощью имитируемых рабочих нагрузок. Кластер можно масштабировать позже, добавляя больше рабочих узлов для соответствия потребностям пиковых нагрузок. Позже кластер можно уменьшить, если дополнительные рабочие узлы не требуются.
Дополнительные сведения см. в статье Планирование загрузки кластеров HDInsight.
Использование рекомендованного типа виртуальной машины для кластера
Сведения о рекомендуемых типах виртуальных машин для каждого типа кластера HDInsight см. в статье Конфигурация узлов и размеры виртуальных машин по умолчанию для кластеров.
Проверка доступности компонентов Hadoop в HDInsight
Каждая версия HDInsight представляет собой дистрибутив набора компонентов экосистемы Hadoop в облаке. Дополнительные сведения о компонентах HDInsight и их текущих версиях см. в статье Что представляют собой различные компоненты Hadoop, доступные в HDInsight.
Вы также можете использовать пользовательский интерфейс Apache Ambari или Ambari REST API для проверки компонентов Hadoop и версий в HDInsight.
Приложения или компоненты, которые были доступны в локальных кластерах, но не являются частью кластеров HDInsight, могут быть добавлены на граничном узле или на виртуальной машине в той же виртуальной сети, что и кластер HDInsight. Стороннее приложение Hadoop, которое недоступно на Azure HDInsight, может быть установлено с помощью опции "Приложение" в кластере HDInsight. Пользовательские приложения Hadoop могут быть установлены на кластере HDInsight с помощью "действий сценариев". В следующей таблице перечислены некоторые из распространенных приложений и их возможности интеграции с HDInsight.
Приложение | Интеграция |
---|---|
Воздушный поток | IaaS или граничный узел HDInsight |
Alluxio | Iaas |
Arcadia | Iaas |
Atlas | Нет (только HDP) |
Datameer | Граничный узел HDInsight |
Datastax (Cassandra) | IaaS (Azure Cosmos DB альтернатива в Azure) |
DataTorrent | Iaas |
Drill | Iaas |
Ignite | IaaS |
Jethro | Iaas |
Mapador | Iaas |
MongoDB | IaaS (Azure Cosmos DB альтернатива в Azure) |
NiFi | Iaas |
Presto | IaaS или граничный узел HDInsight |
Python 2 | Paas |
Python 3 | Paas |
R | Paas |
SAS | Iaas |
Vertica | IaaS (хранилище данных SQL — альтернатива в Azure) |
Tableau | Iaas |
Waterline | Граничный узел HDInsight |
Наборы потоков | Пограничный интерфейс HDInsight |
Palantir | Iaas |
SailPoint | Iaas |
Дополнительные сведения см. в статье Компоненты Hadoop, доступные в разных версиях HDInsight
Настройка кластеров HDInsight с помощью действий сценариев
HDInsight предоставляет метод конфигурации кластера с именем действие сценария. Действие сценария — это bash-скрипт, который выполняется на узлах в кластере HDInsight и может использоваться для установки дополнительных компонентов и изменения параметров конфигурации.
Действия сценариев должны храниться в URI, доступном из кластера HDInsight. Они могут использоваться во время создания или после создания кластера, а также могут быть ограничены только для определенных типов узлов.
Сценарий может сохраняться или выполняться один раз. Сохраняемые сценарии применяются при настройке новых рабочих узлов, добавленных в кластер при операциях масштабирования. Сохраняемый сценарий может также применять изменения к узлу другого типа, например головному, при операциях масштабирования.
HDInsight предоставляет предварительно созданные сценарии для установки следующих компонентов в кластерах HDInsight:
- добавление учетной записи хранения Azure;
- Установка Hue
- установка Presto;
- установка Solr;
- установка Giraph;
- предварительная загрузка библиотек Hive.
- Установка или обновление Mono
Примечание.
HDInsight не обеспечивает прямую поддержку пользовательских компонентов Hadoop или компонентов, установленных с помощью действий сценариев.
Действия сценариев можно опубликовать в Azure Marketplace как приложение HDInsight.
Дополнительные сведения см. в следующих статьях:
- Установка сторонних приложений Apache Hadoop в Azure HDInsight
- Настройка кластеров HDInsight с помощью действий сценариев
- Публикация приложения HDInsight в Azure Marketplace
Настройка конфигураций HDInsight с помощью начальной загрузки
Изменения в конфигурациях в файлах конфигурации, таких как core-site.xml
, hive-site.xml
и oozie-env.xml
, можно сделать с помощью начальной загрузки. Следующий сценарий демонстрирует пример, в котором используется командлет PowerShell AZ Module New-AzHDInsightClusterConfig:
# hive-site.xml configuration
$hiveConfigValues = @{"hive.metastore.client.socket.timeout"="90"}
$config = New—AzHDInsightClusterConfig '
| Set—AzHDInsightDefaultStorage
—StorageAccountName "$defaultStorageAccountName.blob. core.windows.net" `
—StorageAccountKey "defaultStorageAccountKey " `
| Add—AzHDInsightConfigValues `
—HiveSite $hiveConfigValues
New—AzHDInsightCluster `
—ResourceGroupName $existingResourceGroupName `
—Cluster-Name $clusterName `
—Location $location `
—ClusterSizeInNodes $clusterSizeInNodes `
—ClusterType Hadoop `
—OSType Linux `
—Version "3.6" `
—HttpCredential $httpCredential `
—Config $config
Дополнительные сведения см. в статье Настройка кластеров HDInsight с помощью начальной загрузки. См. также раздел Управление кластерами HDInsight с помощью Apache Ambari REST API.
Клиентские инструменты доступа из граничных узлов кластера HDInsight Hadoop
Пустой граничный узел — это виртуальная машина Linux, где установлены и настроены те же клиентские средства, что и на головных узлах, но без служб Hadoop. Граничный узел используется для следующих целей:
- доступ к кластеру;
- тестирование клиентских приложений;
- размещение клиентских приложений.
Граничные узлы можно создать и удалить на портале Azure и их можно использовать во время создания или после создания кластера. После создания граничного узла можно подключиться к нему с помощью SSH и запустить клиентские средства для доступа к кластеру Hadoop в HDInsight. <EdgeNodeName>.<ClusterName>-ssh.azurehdinsight.net:22
является конечной точкой SSH в граничном узле.
Дополнительные сведения см. в статье Использование пустых граничных узлов в кластерах Apache Hadoop в HDInsight
Использование функции увеличения и уменьшения масштаба кластеров
HDInsight обеспечивает гибкость, предоставляя возможность увеличивать и уменьшать масштаб определенного количества рабочих узлов в кластерах. Эта функция позволяет сжимать кластер в нерабочие часы или в выходные дни, а также разворачивать его при пиковых бизнес-требованиях. Дополнительные сведения см. в разделе:
Использование HDInsight с виртуальной сетью Azure
Виртуальные сети Azure позволяют ресурсам Azure (например, виртуальным машинам Azure) безопасно обмениваться данными через локальные сети и Интернет путем фильтрации и маршрутизации сетевого трафика.
Использование виртуальной сети Azure в HDInsight обеспечивает реализацию следующих сценариев.
- Подключение к HDInsight непосредственно из локальной сети.
- Подключение к хранилищам данных HDInsight в виртуальной сети Azure.
- Прямой доступ к службам Hadoop, недоступным из Интернета. Например, возможность напрямую работать с API Kafka или использовать API Java для HBase.
HDInsight можно добавить в новую или существующую виртуальную сеть Azure. Если HDInsight добавляется в существующую виртуальную сеть, необходимо обновить существующие группы безопасности сети и определенные пользователем маршруты, чтобы обеспечить неограниченный доступ к нескольким IP-адресам в центре обработки данных Azure. Кроме того, не блокируйте трафик на порты, которые используются службами HDInsight.
Примечание.
В настоящее время HDInsight не поддерживает принудительное туннелирование. Принудительное туннелирование — это настройка подсети, которая принудительно отправляет исходящий интернет-трафик на устройство для его проверки и ведения журнала. Перед установкой HDInsight в подсеть либо удалите принудительное туннелирование, либо создайте новую подсеть для HDInsight. HDInsight также не поддерживает ограничение исходящего сетевого подключение.
Дополнительные сведения см. в следующих статьях:
- Что такое виртуальная сеть Azure?
- Расширение возможностей HDInsight с помощью виртуальной сети Azure
Безопасное подключение к другим службам Azure с использованием конечных точек служб для виртуальной сети Azure
HDInsight поддерживает конечные точки службы виртуальной сети, которые позволяют безопасно подключаться к базам данных ХРАНИЛИЩЕ BLOB-ОБЪЕКТОВ AZURE, Azure Data Lake Storage 2-го поколения, Azure Cosmos DB и SQL. Включив конечную точку службы для Azure HDInsight, вы обеспечите защищенный маршрут трафика из центра обработки данных Azure. Этот повышенный уровень безопасности на сетевом уровне позволяет заблокировать большие учетные записи хранилища данных для их конкретных виртуальных сетей (VNET) и по-прежнему использовать кластеры HDInsight для доступа и обработки этих данных.
Дополнительные сведения см. в следующих статьях:
- Конечные точки службы для виртуальной сети
- How to enhance HDInsight security with service endpoints (Как повысить безопасность HDInsight с помощью конечных точек службы)
Подключение HDInsight к локальной сети
HDInsight можно подключить к локальной сети с помощью виртуальной сети Azure и VPN-шлюза. Чтобы установить подключение, можно использовать следующие действия:
- используйте HDInsight в виртуальной сети Azure, которая подключается к локальной сети;
- настройте разрешения DNS-имен между виртуальной и локальной сетями;
- настройте группы безопасности сети или определяемые пользователем маршруты для управления сетевым трафиком.
Дополнительные сведения см. в статье Подключение HDInsight к локальной сети
Следующие шаги
Ознакомьтесь со следующей статьей в этой серии: рекомендации по хранению для миграции из локальной среды в Azure HDInsight Hadoop.