Compartilhar via


Migração de carga de trabalho do Hive para nova conta no Armazenamento do Azure

Saiba como usar ações de script para copiar tabelas do Hive entre contas de armazenamento no HDInsight. Isso pode ser útil ao migrar para o Azure Data Lake Storage Gen2.

Para copiar manualmente uma tabela do Hive individual no HDInsight 4.0, confira Exportação/importação do Hive.

Pré-requisitos

Como ele funciona

Executaremos uma ação de script para exportar as tabelas do Hive do cluster original para um diretório HDFS especificado. Aplique uma ação de script a um cluster em execução.

Em seguida, executaremos outra ação de script no novo cluster para importar as tabelas do Hive do diretório HDFS.

O script recriará as tabelas no sistema de arquivos padrão do novo cluster. As tabelas nativas também copiarão seus dados no armazenamento. As tabelas não nativas serão copiadas somente por definição. Consulte Manipuladores de armazenamento do Hive para obter detalhes sobre tabelas não nativas.

O caminho das tabelas externas que não estão no diretório de depósito do Hive será preservado. Outras tabelas serão copiadas para o caminho do Hive padrão do cluster de destino. Consulte as propriedades do Hive hive.metastore.warehouse.external.dir e hive.metastore.warehouse.dir.

Os scripts não preservarão as permissões de arquivo personalizadas no cluster de destino.

Observação

Este guia dá suporte à cópia de objetos de metadados relacionados a bancos de dados, tabelas e partições do Hive. Outros objetos de metadados devem ser recriados manualmente.

  • Para o Views, o Hive dá suporte ao comando SHOW VIEWS começando no Hive 2.2.0 no HDInsight 4.0. Use SHOW CREATE TABLE para a definição de exibição. Para versões anteriores do Hive, consulte o banco de dados SQL do metastore para mostrar as exibições.
  • Para Materialized Views, use os comandos SHOW MATERIALIZED VIEWS, DESCRIBE FORMATTED e CREATE MATERIALIZED VIEW. Confira Exibições materializadas para obter detalhes.
  • Para Constraints, com suporte começando no Hive 2.1.0 no HDInsight 4,0, use DESCRIBE EXTENDED para listar as restrições de uma tabela e ALTER TABLE para adicionar restrições. Consulte Alterar restrições de tabela para obter detalhes.

Copiar tabelas do Hive

  1. Aplique a ação de script "exportar" no cluster original com os campos a seguir.

    Isso vai gerar e executar scripts do Hive intermediários. Eles serão salvos no <hdfs-export-path> especificado.

    Opcionalmente, use --run-script=false para personalizá-los antes de executar manualmente.

    Propriedade Valor
    URI do script Bash https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
    Tipo(s) de nó Head
    Parâmetros <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. Após a conclusão bem-sucedida da exportação, aplique a ação de script "importar" no novo cluster com os campos a seguir.

    Propriedade Valor
    URI do script Bash https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
    Tipo(s) de nó Head
    Parâmetros <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
    
    

Verificação

Baixe e execute o script como usuário raiz hive_contents.sh no nó primário de cada cluster e compare o conteúdo do arquivo de saída /tmp/hive_contents.out. Veja Conectar ao HDInsight (Apache Hadoop) usando SSH.

Limpar o uso de armazenamento adicional

Depois que a migração de armazenamento for concluída e verificada, você poderá excluir os dados no caminho de exportação do HDFS especificado.

A opção é usar o comando HDFS hdfs dfs -rm -R.

Opção: reduzir o uso de armazenamento adicional

A ação do script de exportação provavelmente dobra o uso do armazenamento devido ao Hive. No entanto, é possível limitar o uso de armazenamento adicional migrando manualmente, um banco de dados ou uma tabela de cada vez.

  1. Especifique --run-script=false para ignorar a execução do script do Hive gerado. Os scripts de exportação e importação do Hive ainda seriam salvos no caminho de exportação.

  2. Execute trechos dos scripts de exportação e importação do Hive, banco de dados por banco de dados ou tabela por tabela, limpando manualmente o caminho de exportação após cada tabela ou banco de dados migrado.

Próximas etapas