Отправка данных для заданий Apache Hadoop в HDInsight
Служба HDInsight — это распределенная файловая система Hadoop (HDFS), на базе службы хранилища Azure и Azure Data Lake Storage. Это хранилище включает в себя 2-е поколение. служба хранилища Azure и Data Lake Storage 2-го поколения предназначены в виде расширений HDFS. Благодаря им все компоненты среды Hadoop работают непосредственно с данными, управляемыми службой. служба хранилища Azure Data Lake Storage 2-го поколения являются отдельными файловыми системами. Они оптимизированы для хранения данных и выполнения расчетов на основе этих данных. Сведения о преимуществах Службы хранилища Azure см. в статье Использование Службы хранилища Azure с HDInsight. См. также раздел "Использование Data Lake Storage 2-го поколения с HDInsight".
Необходимые компоненты
Перед началом работы необходимо ознакомиться со следующими требованиями:
- Кластер Azure HDInsight. Инструкции см. в статье Начало работы с Azure 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
Or
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 Data Factory
Фабрика данных Azure — это полностью управляемая служба для работы с данными: хранение, обработка и перемещение данных в упрощенные, масштабируемые и надежные конвейеры генерирования данных.
Тип хранилища | Документация |
---|---|
Хранилище BLOB-объектов Azure | Копирование данных в хранилище BLOB-объектов Azure и обратно с помощью фабрики данных Azure |
(.. /data-factory/connector-azure-data-lake-store.md) | |
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, узнайте, как их можно анализировать.