Использование службы хранилища Azure с кластерами Azure HDInsight
Данные можно хранить в хранилище BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения. Также можно использовать сочетание этих ресурсов. Данные варианты хранилищ позволяют безопасно и без потери пользовательских данных удалять используемые для расчетов кластеры HDInsight.
В Apache Hadoop поддерживается концепция файловой системы по умолчанию. Файловая система по умолчанию подразумевает использование центра сертификации и схемы по умолчанию. Она также может использоваться для разрешения относительных путей. При создании кластера HDInsight в качестве файловой системы по умолчанию можно указать контейнер больших двоичных объектов в службе хранилища Azure. Или с HDInsight 3.6 можно выбрать хранилище BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения в качестве системы файлов по умолчанию с несколькими исключениями.
Из этой статьи вы узнаете, как служба хранилища Azure работает с кластерами HDInsight.
- Сведения о работе Data Lake Storage 2-го поколения с кластерами HDInsight см. в статье "Использование Azure Data Lake Storage 2-го поколения с кластерами Azure HDInsight".
- Дополнительные сведения о создании кластера HDInsight см. в статье Установка кластеров в HDInsight с использованием Hadoop, Spark, Kafka и других технологий.
Внимание
Тип учетной записи хранения BlobStorage можно использовать только как дополнительное хранилище кластеров HDInsight.
Вид учетной записи хранения | Поддерживаемые службы | Поддерживаемые уровни производительности | Неподдерживаемые уровни производительности | Поддерживаемые уровни доступа |
---|---|---|---|---|
StorageV2 (учетная запись общего назначения версии 2) | BLOB-объект | Standard | Premium | Горячий, холодный или архивный* |
Учетная запись хранения общего назначения версии 1 | BLOB-объект | Standard | Premium | Н/П |
BlobStorage | BLOB-объект | Standard | Premium | Горячий, холодный или архивный* |
Применяемый по умолчанию контейнер больших двоичных объектов не рекомендуется использовать для хранения бизнес-данных. Чтобы сократить затраты на хранение, контейнер больших двоичных объектов по умолчанию рекомендуется удалять после каждого использования. Контейнер по умолчанию содержит журналы приложений и системный журнал. Обязательно извлеките эти журналы перед удалением контейнера.
Совместное использование одного контейнера больших двоичных объектов в качестве файловой системы по умолчанию для нескольких кластеров не поддерживается.
Примечание.
Архивный уровень доступа — это автономный уровень с задержкой извлечения в несколько часов, который не рекомендуется использовать вместе с HDInsight. Дополнительные сведения см. в разделе Архивный уровень доступа.
Доступ к файлам из кластера
Примечание.
Команда службы хранилища Azure прекратила все активные разработки в WASB и рекомендует всем клиентам использовать драйвер ABFS для взаимодействия с BLOB-объектами и ADLS 2-го поколения. Дополнительные сведения см. в статье Драйвер файловой системы BLOB-объектов Azure (ABFS): выделенный драйвер служба хранилища Azure для Hadoop
С помощью полного доменного имени. При таком подходе необходимо указать полный путь к файлу, к которому требуется доступ.
wasb://<containername>@<accountname>.blob.core.windows.net/<file.path>/ wasbs://<containername>@<accountname>.blob.core.windows.net/<file.path>/
Используя сокращенный формат пути. При таком подходе путь до корня кластера заменяется на следующий:
wasb:///<file.path>/ wasbs:///<file.path>/
С помощью относительного пути. При таком подходе указывается только относительный путь к файлу, к которому требуется доступ.
/<file.path>/
Примеры доступа к данным
Примеры основаны на SSH-подключении к головному узлу кластера. В примерах используются все три схемы URI. Замените CONTAINERNAME
и STORAGEACCOUNT
соответствующими значениями
Несколько команд HDFS
Создайте файл в локальном хранилище.
touch testFile.txt
Создайте каталог в хранилище кластера.
hdfs dfs -mkdir wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -mkdir wasbs:///sampledata2/ hdfs dfs -mkdir /sampledata3/
Скопируйте данные из локального хранилища в хранилище кластера.
hdfs dfs -copyFromLocal testFile.txt wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -copyFromLocal testFile.txt wasbs:///sampledata2/ hdfs dfs -copyFromLocal testFile.txt /sampledata3/
Перечислите содержимое каталога в хранилище кластера.
hdfs dfs -ls wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/sampledata1/ hdfs dfs -ls wasbs:///sampledata2/ hdfs dfs -ls /sampledata3/
Примечание.
При работе с большими двоичными объектами вне HDInsight большинство программ не распознают формат WASB и вместо этого ожидают формат базового пути, например example/jars/hadoop-mapreduce-examples.jar
.
Создание таблицы Hive
Для наглядности показаны три расположения файлов. Для фактического выполнения используйте только одну из записей LOCATION
.
DROP TABLE myTable;
CREATE EXTERNAL TABLE myTable (
t1 string,
t2 string,
t3 string,
t4 string,
t5 string,
t6 string,
t7 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
STORED AS TEXTFILE
LOCATION 'wasbs://CONTAINERNAME@STORAGEACCOUNT.blob.core.windows.net/example/data/';
LOCATION 'wasbs:///example/data/';
LOCATION '/example/data/';
Доступ к файлам из внешнего кластера
Корпорация Майкрософт предоставляет следующие инструменты для работы со службой хранилища Azure:
Средство | Linux | OS X | Windows |
---|---|---|---|
Портал Azure | ✔ | ✔ | ✔ |
Azure CLI | ✔ | ✔ | ✔ |
Azure PowerShell | ✔ | ||
AzCopy | ✔ | ✔ |
Указание пути к хранилищу из Ambari
Чтобы указать полный путь к настроенному хранилищу по умолчанию, перейдите в следующий раздел:
HDFS>Configs (Конфигурации) и введите
fs.defaultFS
в поле фильтра.Чтобы проверить, настроено ли хранилище wasb как дополнительное, перейдите в следующий раздел:
HDFS>Configs (Конфигурации) и введите
blob.core.windows.net
в поле фильтра.
Сведения о том, как получить путь с помощью REST API Ambari, см. в разделе Получение хранилища по умолчанию.
контейнеров BLOB-объектов;
Чтобы использовать большие двоичные объекты, сначала создайте учетную запись службы хранилища Azure. В рамках этого шага укажите регион Azure, в котором создается учетная запись хранения. Кластер и учетная запись хранения должны размещаться в одном регионе. База данных SQL Server хранилища метаданных Hive и база данных SQL Server хранилища метаданных Apache Oozie должны располагаться в одном регионе.
Где бы ни находился созданный BLOB-объект, он принадлежит контейнеру в вашей учетной записи хранения Azure. Этот контейнер может быть существующим BLOB-объектом, созданным за пределами HDInsight. Или это может быть контейнер, созданный для кластера HDInsight.
Стандартный контейнер больших двоичных объектов хранит сведения о кластере, включая журналы заданий. Не используйте стандартный контейнер BLOB-объектов с несколькими кластерами HDInsight. Это действие может привести к искажению журнала заданий. Для каждого кластера рекомендуется использовать отдельный контейнер. Общие данные следует поместить в связанную учетную запись хранения, указанную для всех соответствующих кластеров, а не в учетную запись хранения по умолчанию. Дополнительные сведения о настройке связанных учетных записей хранения см. в статье Создание кластеров HDInsight. Тем не менее, вы можете повторно использовать контейнер хранения по умолчанию после удаления исходного кластера HDInsight. Для кластеров HBase можно сохранить все данные и схемы таблицы HBase, создав кластер HBase с помощью контейнера больших двоичных объектов по умолчанию, который используется удаленным кластером HBase.
Примечание.
Функция, требующая безопасной передачи, обеспечивает принудительную передачу всех запросов к вашей учетной записи через безопасное подключение. Только кластер HDInsight версии 3.6 или более новой поддерживает эту функцию. Дополнительные сведения см. в статье Создание кластера Apache Hadoop с помощью учетных записей хранения с безопасной передачей в Azure HDInsight.
Использование дополнительных учетных записей хранения
При создании кластера HDInsight укажите учетную запись хранения Azure, которую необходимо с ним связать. Кроме того, в процессе создания или после создания кластера можно добавить дополнительные учетные записи хранения из той же или других подписок Azure. Инструкции по добавлению дополнительных учетных записей хранения см. в статье Создание кластеров Hadoop в HDInsight.
Предупреждение
Использование дополнительной учетной записи хранения в другом расположении, отличном от кластера HDInsight, не поддерживается.
Следующие шаги
Из этой статьи вы узнали, как использовать HDFS-совместимую службу хранилища Azure с HDInsight. В этом хранилище можно создавать адаптируемые, долгосрочные решения для получения данных архивирования, а также использовать HDInsight для разблокирования информации внутри хранимых структурированных и неструктурированных данных.
Дополнительные сведения см. в разделе:
- Краткое руководство. Создание кластера Apache Hadoop
- Руководство. Создание кластеров HDInsight
- Использование Azure Data Lake Storage Gen2 с кластерами Azure HDInsight
- Отправка данных в HDInsight
- Руководство. Извлечение, преобразование и загрузка данных с помощью интерактивного запроса в Azure HDInsight
- Использование подписанных URL-адресов хранилища Azure для ограничения доступа к данным с помощью HDInsight