Миграция рабочей нагрузки Hive в новую учетную запись в службе хранилища Azure
Сведения о том, как использовать действия сценария для копирования таблиц Hive между учетными записями хранения в HDInsight. Это может быть полезно при переходе на Azure Data Lake Storage Gen2
.
Чтобы вручную скопировать отдельную таблицу Hive в HDInsight 4.0, см. раздел Экспорт и импорт Hive.
Необходимые компоненты
Новый кластер HDInsight со следующими конфигурациями:
- Его файловая система по умолчанию находится в целевой учетной записи хранения. См. Использование службы хранилища Azure с кластерами Azure HDInsight.
- Его версия должна совпадать с версией исходного кластера.
- В нем используется новая внешняя база данных хранилища метаданных Hive. См. Использование внешних хранилищ метаданных.
Учетная запись хранения, доступная как для исходного, так и для нового кластера. Разрешенные вторичные типы хранилища приведены в статье статью Добавление дополнительных учетных записей хранения в HDInsight и Типы и характеристики хранилищ.
Ниже приведено несколько вариантов:
- Добавьте целевую учетную запись хранения в исходный кластер.
- Добавьте исходную учетную запись хранения в новый кластер.
- Добавьте промежуточную учетную запись хранения в исходный и новый кластеры.
Принцип работы
Мы выполним действие сценария для экспорта таблиц Hive из исходного кластера в указанный каталог HDFS. См. статью Запуск сценария в работающем кластере.
Затем мы выполним еще одно действие сценария в новом кластере, чтобы импортировать таблицы Hive из каталога HDFS.
Сценарий повторно создаст таблицы в новой файловой системе кластера по умолчанию. Собственные таблицы также будут копировать свои данные в хранилище. Несобственные таблицы будут копироваться только по определению. Дополнительные сведения о несобственных таблицах см. в статье Обработчики службы хранилища Hive.
Путь внешних таблиц, отсутствующих в каталоге хранилища Hive, будет сохранен. Другие таблицы будут скопированы в путь Hive по умолчанию целевого кластера. См. свойства Hive hive.metastore.warehouse.external.dir
и hive.metastore.warehouse.dir
.
Сценарии не будут сохранять пользовательские разрешения файла в целевом кластере.
Примечание.
Это руководство поддерживает копирование объектов метаданных, связанных с базами данных Hive, таблицами и секциями. Другие объекты метаданных необходимо создать повторно вручную.
- Для
Views
Hive поддерживает командуSHOW VIEWS
(Hive 2.2.0 в HDInsight 4.0). ИспользуйтеSHOW CREATE TABLE
для определения представления. Для более ранних версий Hive запросите базу данных SQL хранилища метаданных отобразить представления. - Для
Materialized Views
используйте командыSHOW MATERIALIZED VIEWS
,DESCRIBE FORMATTED
иCREATE MATERIALIZED VIEW
. Дополнительные сведения см. в статье Материализованные представления. - Для
Constraints
(поддерживается в 2.1.0 Hive в HDInsight 4.0) используйтеDESCRIBE EXTENDED
для перечисления ограничений на уровне таблицы иALTER TABLE
для добавления ограничений. Дополнительные сведения см. в статье Изменение ограничений на уровне таблицы.
Копирование таблиц Hive
Примените действие сценария "export" к исходному кластеру с перечисленными ниже полями.
При этом будут созданы и выполнены промежуточные сценарии Hive. Сохранение будет выполняться в указанном пути
<hdfs-export-path>
.При необходимости используйте
--run-script=false
, чтобы настроить их перед выполнением вручную.Свойство Значение URI bash-скрипта https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
Типы узлов Head Параметры <hdfs-export-path>
--run-script
usage: generate Hive export and import scripts and export Hive data to specified HDFS path [--run-script={true,false}] hdfs-export-path positional arguments: hdfs-export-path remote HDFS directory to write export data to optional arguments: --run-script={true,false} whether to execute the generated Hive export script (default: true)
После успешного завершения экспорта примените действие "import" сценария в новом кластере с перечисленными ниже полями.
Свойство Значение URI bash-скрипта https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
Типы узлов Head Параметры <hdfs-export-path>
usage: download Hive import script from specified HDFS path and execute it hdfs-export-path positional arguments: hdfs-export-path remote HDFS directory to download Hive import script from
Проверка
Скачайте и запустите сценарий от имени привилегированного пользователя hive_contents.sh
на основном узле каждого кластера и сравните содержимое выходного файла /tmp/hive_contents.out
. См. статью Подключение к HDInsight (Apache Hadoop) с помощью SSH.
Очистка дополнительного использования хранилища
После завершения миграции хранилища и проверки можно удалить данные в указанном пути экспорта HDFS.
Можно использовать команду HDFS hdfs dfs -rm -R
.
Необязательно: очистка дополнительного использования хранилища
Действие сценария экспорта, вероятно, удваивает использование хранилища из-за Hive. Однако можно ограничить дополнительное использование хранилища, выполнив миграцию вручную — по одной базе данных или таблице за раз.
Укажите
--run-script=false
, чтобы пропустить выполнение созданного сценария Hive. Сценарии экспорта и импорта Hive по-прежнему будут сохранены в пути экспорта.Выполните фрагменты кода из сценариев экспорта и импорта Hive по одной базе данных или таблице за раз, вручную очищая путь экспорта после каждой перенесенной базы данных или таблицы.