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

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

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

Pré-requisitos

Como funciona

Vamos executar uma ação de script para exportar tabelas do Hive do cluster original para um diretório HDFS especificado. Veja Ação de script para um cluster em execução.

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

O script recriará as tabelas para o sistema de ficheiros predefinido do novo cluster. As tabelas nativas também copiarão os respetivos dados no armazenamento. As tabelas não nativas só serão copiadas por definição. Veja Processadores de Armazenamento do Hive para obter detalhes sobre tabelas não nativas.

O caminho das tabelas externas que não se encontra no diretório do armazém do Hive será preservado. Outras tabelas copiarão para o caminho predefinido do Hive do cluster de destino. Veja Propriedades hive.metastore.warehouse.external.dir do Hive e hive.metastore.warehouse.dir.

Os scripts não preservam as permissões de ficheiro personalizadas no cluster de destino.

Nota

Este guia suporta a cópia de objetos de metadados relacionados com bases de dados, tabelas e partições do Hive. Outros objetos de metadados têm de ser recriados manualmente.

  • Para Viewso , o Hive suporta SHOW VIEWS o comando a partir do Hive 2.2.0 no HDInsight 4.0. Utilize SHOW CREATE TABLE para a definição de vista. Para versões anteriores do Hive, consulte a BD SQL do metastore para mostrar vistas.
  • Para Materialized Views, utilize os comandos SHOW MATERIALIZED VIEWS, DESCRIBE FORMATTEDe CREATE MATERIALIZED VIEW. Veja Vistas materializadas para obter detalhes.
  • Para Constraints, suportado a partir do Hive 2.1.0 no HDInsight 4.0, utilize DESCRIBE EXTENDED para listar restrições de uma tabela e utilize ALTER TABLE para adicionar restrições. Veja 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 seguintes campos.

    Isto irá gerar e executar scripts intermediários do Hive. Serão guardados na especificada <hdfs-export-path>.

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

    Propriedade Valor
    Bash script URI https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
    Tipos 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 da exportação com êxito, aplique a ação de script "importar" no novo cluster com os seguintes campos.

    Propriedade Valor
    Bash script URI https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
    Tipos 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

Transfira e execute o script como utilizador hive_contents.sh raiz no nó primário de cada cluster e compare o conteúdo do ficheiro /tmp/hive_contents.outde saída . Veja Ligar ao HDInsight (Apache Hadoop) com SSH.

Limpar a utilização adicional do armazenamento

Após a conclusão e verificação da migração de armazenamento, pode eliminar os dados no caminho de exportação do HDFS especificado.

A opção é utilizar o comando hdfs dfs -rm -RHDFS .

Opção: reduzir a utilização de armazenamento adicional

A ação do script de exportação provavelmente duplica a utilização do armazenamento devido ao Hive. No entanto, é possível limitar a utilização de armazenamento adicional ao migrar manualmente, uma base de dados ou 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 guardados no caminho de exportação.

  2. Execute fragmentos da base de dados de exportação e importação de scripts do Hive base de dados por base de dados ou tabela a tabela, limpando manualmente o caminho de exportação após cada base de dados ou tabela migrada.

Passos seguintes