Отправка данных для заданий Apache Hadoop в HDInsight

Служба HDInsight — это распределенная файловая система Hadoop (HDFS), на базе службы хранилища Azure и Azure Data Lake Storage. Это хранилище включает 1-е и 2-е поколение. Служба хранилища Azure и Data Lake Storage 1-го и 2-го поколения разработаны в качестве расширений HDFS. Благодаря им все компоненты среды Hadoop работают непосредственно с данными, управляемыми службой. Служба хранилища Azure, Data Lake Storage 1-го и 2-го поколения — это разные файловые системы. Они оптимизированы для хранения данных и выполнения расчетов на основе этих данных. Сведения о преимуществах Службы хранилища Azure см. в статье Использование Службы хранилища Azure с HDInsight. См. также статью Использование Data Lake Storage 1-го поколения с HDInsight и Использование Data Lake Storage 2-го поколения с HDInsight.

Предварительные требования

Перед началом работы необходимо ознакомиться со следующими требованиями:

Отправка данных в службу хранилища Azure

Служебные программы

Корпорация Майкрософт предоставляет следующие служебные программы для работы со службой хранилища Azure:

Инструмент Linux OS X Windows
Портал Azure
Azure CLI
Azure PowerShell
AzCopy
Команда Hadoop

Примечание

Команда Hadoop доступна только в кластере HDInsight. Она допускает загрузку данных только из локальной файловой системы в службу хранилища Azure.

Командная строка Hadoop

Командная строка Hadoop полезна только для хранения данных в большом двоичном объекте службы хранилища Azure, когда данные уже присутствуют на головном узле кластера.

Чтобы использовать команду Hadoop, необходимо сначала подключиться к головному узлу, используя SSH или PuTTY.

После подключения можно использовать следующий синтаксис для отправки файла в хранилище.

hadoop fs -copyFromLocal <localFilePath> <storageFilePath>

Например hadoop fs -copyFromLocal data.txt /example/data/data.txt.

Так как файловая система по умолчанию для HDInsight находится в службе хранилища Azure, файл /example/data/data.txt фактически располагается там же. Можно также использовать следующую ссылку на файл:

wasbs:///example/data/data.txt

или

wasbs://<ContainerName>@<StorageAccountName>.blob.core.windows.net/example/data/davinci.txt

Список других команд Hadoop, которые работают с файлами, см. здесь: https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html

Предупреждение

В кластерах Apache HBase при записи данных используется размер блока по умолчанию (256 КБ). Это подходит, когда используются API HBase или REST API. Но при попытке записать более 12 ГБ данных с помощью команды hadoop или hdfs dfs возникнет ошибка. Дополнительные сведения см. в разделе Исключение хранилища при записи в большой двоичный объект.

Графические клиенты

Существуют также несколько приложений, которые предоставляют графический интерфейс для работы с хранилищем Azure. В следующей таблице приведен список некоторых из таких приложений:

Клиент Linux OS X Windows
Microsoft Visual Studio Tools для HDInsight
Обозреватель службы хранилища Azure
Cerulea
CloudXplorer;
CloudBerry Explorer для Microsoft Azure
Cyberduck

Подключение службы хранилища Azure в качестве локального диска

Подробные сведения см. в статье Mount Azure Blob Storage as Local Drive (Подключение хранилища BLOB-объектов Azure в качестве локального диска).

Отправка с помощью служб

Фабрика данных Azure

Фабрика данных Azure — это полностью управляемая служба для работы с данными: хранение, обработка и перемещение данных в упрощенные, масштабируемые и надежные конвейеры генерирования данных.

Тип хранилища Документация
Хранилище BLOB-объектов Azure Копирование данных в хранилище BLOB-объектов Azure и обратно с помощью фабрики данных Azure
Хранилище Azure Data Lake Storage 1-го поколения Копирование данных в Azure Data Lake Storage Gen1 и из него с помощью фабрики данных Azure
Azure Data Lake Storage 2-го поколения Загрузка данных в Azure Data Lake Storage 2-го поколения с помощью Фабрики данных Azure

Apache Sqoop

Sqoop — это средство, предназначенное для передачи данных между Hadoop и реляционными базами данных. Используйте его для импорта данных из системы управления реляционными базами данных (RDBMS), например SQL Server, MySQL или Oracle. Затем переместите данные в распределенную файловую систему Hadoop (HDFS). Преобразуйте данные в Hadoop с помощью MapReduce или Hive, а затем экспортируйте их обратно в реляционную СУБД.

Дополнительные сведения см. в разделе Использование Sqoop с Hadoop в HDInsight.

Пакеты SDK для разработки

Доступ к службе хранилища Azure также можно получить с помощью пакета Azure SDK со следующих языков программирования:

  • .NET
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby

Подробные сведения об установке пакетов SDK для Azure см. на странице Загрузки.

Дальнейшие действия

Теперь, когда вы знаете, как передавать данные в HDInsight, узнайте, как их можно анализировать.