Поделиться через


Миграция локальных кластеров 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.

Дополнительные сведения см. в следующих статьях:

Настройка конфигураций 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 с использованием конечных точек служб для виртуальной сети Azure

HDInsight поддерживает конечные точки службы виртуальной сети, которые позволяют безопасно подключаться к базам данных ХРАНИЛИЩЕ BLOB-ОБЪЕКТОВ AZURE, Azure Data Lake Storage 2-го поколения, Azure Cosmos DB и SQL. Включив конечную точку службы для Azure HDInsight, вы обеспечите защищенный маршрут трафика из центра обработки данных Azure. Этот повышенный уровень безопасности на сетевом уровне позволяет заблокировать большие учетные записи хранилища данных для их конкретных виртуальных сетей (VNET) и по-прежнему использовать кластеры HDInsight для доступа и обработки этих данных.

Дополнительные сведения см. в следующих статьях:

Подключение HDInsight к локальной сети

HDInsight можно подключить к локальной сети с помощью виртуальной сети Azure и VPN-шлюза. Чтобы установить подключение, можно использовать следующие действия:

  • используйте HDInsight в виртуальной сети Azure, которая подключается к локальной сети;
  • настройте разрешения DNS-имен между виртуальной и локальной сетями;
  • настройте группы безопасности сети или определяемые пользователем маршруты для управления сетевым трафиком.

Дополнительные сведения см. в статье Подключение HDInsight к локальной сети

Следующие шаги

Ознакомьтесь со следующей статьей в этой серии: рекомендации по хранению для миграции из локальной среды в Azure HDInsight Hadoop.