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


Импорт из запроса Hive

Важно!

Поддержка Студии машинного обучения (классической) будет прекращена 31 августа 2024 г. До этой даты рекомендуется перейти на Машинное обучение Azure.

Начиная с 1 декабря 2021 года вы не сможете создавать новые ресурсы Студии машинного обучения (классической). Существующие ресурсы Студии машинного обучения (классическая версия) можно будет использовать до 31 августа 2024 г.

Поддержка документации по ML Studio (классической) прекращается, а сама документация может не обновляться в будущем.

В этой статье описывается использование модуля импорта данных в Машинное обучение Studio (классическая модель) для получения данных из кластеров Hadoop и распределенного хранилища HDInsight.

Примечание

Область применения: только Машинное обучение Studio (классическая версия)

Подобные модули перетаскивания доступны в конструкторе машинного обучения Azure.

Импорт данных из Hive особенно полезен для загрузки больших наборов данных или для предварительной обработки данных с помощью задания MapReduce перед загрузкой данных в эксперимент машинного обучения.

Важно!

По состоянию на 31 июля 2018 г. Microsoft Azure HDInsight версии 3.3 была последней версией HDInsight на Windows. Если у вас есть кластеры HDInsight на Windows 3.3 или более ранних версий, необходимо выполнить миграцию в HDInsight в Linux (HDInsight версии 3.5 или более поздней). Дополнительные сведения об устаревших версиях HDInsight см. в разделе "Устаревшие версии". Машинное обучение Studio (классическая модель) поддерживает HDInsight в Linux в определенных сценариях.

Поддержка HDInsight в Linux

Машинное обучение Studio (классическая модель) поддерживает HDInsight в Linux в следующих сценариях:

  • Blob-объект Hadoop 2.7.3 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
  • Blob-объект Spark 2.1.0 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
  • Blob-объект Spark 2.2.0 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS
  • Blob-объект Spark 2.3.0 (HDI 3.6) по умолчанию, дополнительный ОБЪЕКТ ADLS

Известные проблемы

Существует несколько известных проблем с использованием модуля импорта данных для запросов Hive с HDInsight в Linux:

Импорт данных из запросов Hive

Использование мастера

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

  1. Добавьте модуль импорта данных в эксперимент. Модуль можно найти в Студии (классической) в категории входных и выходных данных .

  2. Нажмите кнопку "Запустить мастер импорта данных" и следуйте инструкциям.

  3. По завершении настройки, чтобы фактически скопировать данные в эксперимент, щелкните модуль правой кнопкой мыши и выберите "Выполнить выбранный".

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

Настройка свойств импорта вручную

Ниже описано, как вручную настроить источник импорта.

  1. Добавьте модуль импорта данных в эксперимент. Модуль можно найти в Студии (классической) в категории входных и выходных данных .

  2. Для источника данных выберите "Запрос Hive".

  3. В текстовом поле запроса базы данных Hive укажите данные, которые требуется прочитать с помощью HiveQL.

    HiveQL — это язык запросов, подобный SQL, который также можно использовать для агрегирования данных и фильтрации данных перед добавлением данных в Машинное обучение Studio (классическая модель). Однако запрос Hive должен возвращать данные в табличном формате.

    Например, этот оператор является допустимым запросом Hive:

    SELECT <column list> FROM table WHERE <expression>;

  4. Щелкните текстовое поле URI сервера HCatalog и введите полное имя кластера.

    Например, если вы создали кластер с именем mycluster001, используйте следующий формат: https://mycluster001.azurehdinsight.net

  5. Щелкните текстовое поле имени учетной записи пользователя Hadoop и вставьте учетную запись пользователя Hadoop, которая использовалась при подготовке кластера.

  6. Щелкните текстовое поле пароля учетной записи пользователя Hadoop и введите учетные данные, используемые при подготовке кластера.

    Дополнительные сведения об именовании кластеров и проверке подлинности для Hadoop см. в статье "Подготовка кластеров Hadoop в HDInsight".

  7. В поле "Расположение выходных данных" выберите параметр, указывающий, где хранятся данные. Если данные хранятся в распределенной файловой системе Hadoop (HDFS), они должны быть доступны через ту же учетную запись и пароль, которые вы только что ввели. Если данные есть в Azure, укажите расположение и учетные данные учетной записи хранения.

    • HDFS: введите или вставьте URI сервера HDFS. Не забудьте использовать имя кластера HDInsight безHTTPS:// префикса.

    • Azure: для имени учетной записи хранения Azure введите имя учетной записи Azure. Например, если указан полный URL-адрес учетной записи https://myshared.blob.core.windows.netхранения, введите myshared.

    • Ключ хранилища Azure: скопируйте и вставьте ключ, предоставленный для доступа к учетной записи хранения.

    • Для имени контейнера Azure укажите контейнер по умолчанию для кластера. Сведения о том, какой контейнер следует использовать, см. в разделе Советы.

  8. Выберите параметры "Использовать кэшированные результаты ", если вы не ожидаете, что данные изменятся много, или если вы хотите избежать перезагрузки данных при каждом запуске эксперимента.

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

    Если вы хотите повторно загрузить набор данных при каждой итерации набора данных эксперимента, отмените выбор параметра Use cached results (Использовать кэшированные результаты ). Результаты также загружаются повторно при изменении параметров импорта данных.

  9. Запустите эксперимент.

Результаты

По завершении щелкните выходной набор данных и выберите "Визуализировать ", чтобы узнать, успешно ли импортированы данные.

При возникновении ошибок проверьте данные на наличие отсутствующих значений, дополнительных пустых столбцов или несовместимых типов данных.

Примеры

Примеры настройки кластера HDInsight и использования запросов Hive в экспериментах машинного обучения см. в следующих ресурсах:

  • В этой статье содержится подробное пошаговое руководство по созданию кластера, отправке данных и вызову данных из Студии (классической) с помощью Hive: advanced Analytics Process and Technology in Action: Using HDInsight Hadoop clusters.

  • В этом блоге MVP Vesa Tikkanen описываются некоторые проблемы и обходные пути при чтении очень больших файлов (распределенных запросов) из кластера HD в Linux: чтение Linux HDInsight Hive из Azure ML

Хотя Hive предлагает превосходные функции для многих видов очистки и предварительной обработки данных, после импорта эти средства могут оказаться полезными для подготовки данных для моделирования:

  • Изменение метаданных и других модулей позволяет изменить имена столбцов, указать, какие столбцы содержат метки и компоненты, а также указать тип данных столбца. Примеры см. в разделе "Обработка набора данных".

  • Текстовые данные после обработки с помощью Python для удаления пунктуации, флага частей речи и многого другого. Примеры см. в разделе "Классификация текста".

  • Объединение нескольких таблиц из разных источников в одну таблицу обучающих данных. Примеры см. в разделе прогнозного обслуживания.

Технические примечания

В этом разделе содержатся сведения о реализации, советы и ответы на часто задаваемые вопросы.

Как определить контейнер по умолчанию

Если вы создали кластер, принимая все значения по умолчанию, контейнер с тем же именем, что и кластер, был создан одновременно с кластером. Этот контейнер является контейнером по умолчанию для кластера. Однако если при создании кластера выбран параметр CUSTOM CREATE , вы можете выбрать контейнер по умолчанию двумя способами. Первый вариант — выбрать существующий контейнер. При этом этот контейнер становится контейнером хранилища по умолчанию для кластера. Вторым вариантом является создание контейнера по умолчанию. При использовании этого параметра контейнер по умолчанию имеет то же имя, что и кластер.

Вызов скриптов Python из запроса Hive

Модуль импорта данных можно использовать для выполнения запросов Hive, которые вызывают Python определяемых пользователем функций для обработки записей.

Дополнительные сведения см. в статье "Использование Python с Hive и Pig в HDInsight".

Предотвращение нехватки памяти при использовании Hive для предварительной обработки данных

При использовании запросов Hive для получения записей из источников данных большого размера иногда конфигурация по умолчанию для кластера Hadoop слишком ограничена для поддержки выполнения заданий MapReduce. Например, в этих заметках о выпуске для HDInsight параметры по умолчанию определяются как кластер с четырьмя узлами.

Если требования задания MapReduce превышают доступную емкость, запросы Hive могут возвращать сообщение об ошибке нехватки памяти, что приводит к сбою операции импорта данных. В этом случае можно изменить выделение памяти по умолчанию для запросов Hive в модуле импорта данных , как показано ниже.

Increase memory to maximum allowed on cluster

В этом примере команды set mapreduce.map.memory.mb и set mapreduce.reduce.memory.mb используются для увеличения объема памяти до максимально допустимого в кластере.

Часто задаваемые вопросы

Как избежать повторной загрузки одних и того же данных без необходимости

При изменении исходных данных можно обновить набор данных и добавить новые данные, повторно запустив импорт данных. Однако если вы не хотите повторно считывать данные из источника при каждом запуске эксперимента, выберите параметр "Использовать кэшированные результаты " в значение TRUE. Если для этого параметра задано значение TRUE, модуль проверит, выполняется ли эксперимент ранее с использованием одного источника и одного и того же входного параметра, а при обнаружении предыдущего запуска используются данные в кэше вместо повторной загрузки данных из источника.

Можно ли фильтровать данные по мере чтения из источника

Сам модуль импорта данных не поддерживает фильтрацию по мере чтения данных.

Чтобы отфильтровать данные перед чтением в Машинное обучение Studio (классическая модель), используйте запрос Hive или задание MapReduce для агрегирования и преобразования данных.

После загрузки данных в Машинное обучение Studio (классическая модель) также существует несколько вариантов фильтрации данных.

  • Используйте пользовательский скрипт R, чтобы получить только нужные данные.
  • Используйте модуль split Data с относительным выражением или регулярным выражением, чтобы изолировать нужные данные, а затем сохранить его в виде набора данных.

Примечание

Если вы загрузили больше данных, чем требуется, вы можете перезаписать кэшированный набор данных. Для этого необходимо считать новый набор данных и сохранить его под именем, идентичным имени большего, ранее записанного набора данных.

Параметры модуля

Имя Диапазон Тип По умолчанию Описание
Источник данных Список Источник данных или приемник хранилище BLOB-объектов Azure Источником данных может быть HTTP, FTP, анонимный ПРОТОКОЛ HTTPS или FTPS, файл в хранилище BLOB-объектов Azure, таблица Azure, База данных SQL Azure, локальная база данных SQL Server, таблица Hive или конечная точка OData.
Запрос базы данных Hive any StreamReader Запрос HQL
URI сервера HCatalog any Строка Конечная точка Templeton
Имя учетной записи пользователя Hadoop any Строка Имя пользователя Hadoop HDFS/HDInsight
Пароль учетной записи пользователя Hadoop any SecureString Пароль Hadoop HDFS/HDInsight
Расположение выходных данных any DataLocation HDFS Указание HDFS или Azure для outputDir
URI HDFS-сервера any Строка Конечная точка rest HDFS
Имя учетной записи хранения Azure any Строка Имя учетной записи хранения Azure
Ключ к хранилищу Azure any SecureString Ключ к хранилищу Azure
Имя контейнера Azure any Строка Имя контейнера Azure
Тип содержимого данных Список (подмножество) Содержимое URL-адреса OData Тип формата данных
URL-адрес источника any Строка URL-адрес для источника данных Power Query
Использование кэшированных результатов True или false Логическое FALSE description

Выходные данные

Имя Тип Описание
Набор данных результатов Таблица данных Набор данных с загруженными данными

Исключения

Исключение Описание
Ошибка 0027 Исключение возникает, если два объекта должны быть одинакового размера, но это не так.
Ошибка 0003 Исключение возникает, если один или несколько входных аргументов имеют значение NULL или пусты.
Ошибка 0029 Исключение возникает при передаче недопустимого универсального кода ресурса.
Ошибка 0030 Исключение возникает, если невозможно скачать файл.
Ошибка 0002 Исключение возникает, если один или несколько параметров не удалось проанализировать или преобразовать из заданного типа в необходимый для целевого метода тип.
Ошибка 0009 Исключение возникает, если имя учетной записи хранилища Azure или имя контейнера указаны неверно.
Ошибка 0048 Исключение возникает, когда не удается открыть файл.
Ошибка 0015 Исключение возникает, если произошел сбой подключения к базе данных.
Ошибка 0046 Исключение возникает, если не удается создать каталог по указанному пути.
Ошибка 0049 Исключение возникает, когда не удается проанализировать файл.

Список ошибок, относящихся к модулям Студии (классическая модель), см. в разделе Машинное обучение коды ошибок.

Список исключений API см. в разделе Машинное обучение коды ошибок REST API.

См. также раздел

Импорт данных
Экспорт данных
Импорт с URL-адреса в Интернете с использованием HTTP
Импорт из Базы данных SQL Azure
Импорт из таблицы Azure
Импорт из Хранилища BLOB-объектов Azure
Импорт из поставщиков веб-каналов данных
Импорт из локальной базы данных SQL Server