Бөлісу құралы:


Миграция рабочей нагрузки Hive в новую учетную запись в службе хранилища Azure

Сведения о том, как использовать действия сценария для копирования таблиц Hive между учетными записями хранения в HDInsight. Это может быть полезно при переходе на Azure Data Lake Storage Gen2.

Чтобы вручную скопировать отдельную таблицу Hive в HDInsight 4.0, см. раздел Экспорт и импорт Hive.

Необходимые компоненты

Принцип работы

Мы выполним действие сценария для экспорта таблиц 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

  1. Примените действие сценария "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)
    
  2. После успешного завершения экспорта примените действие "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. Однако можно ограничить дополнительное использование хранилища, выполнив миграцию вручную — по одной базе данных или таблице за раз.

  1. Укажите --run-script=false, чтобы пропустить выполнение созданного сценария Hive. Сценарии экспорта и импорта Hive по-прежнему будут сохранены в пути экспорта.

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

Следующие шаги