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
Um novo cluster do HDInsight com as seguintes configurações:
- O sistema de ficheiros predefinido está na conta de armazenamento de destino. Veja Utilizar o armazenamento do Azure com clusters do Azure HDInsight.
- A versão do cluster tem de corresponder à do cluster de origem.
- Utiliza uma nova BD do metastore do Hive externa. Veja Utilizar arquivos de metadados externos.
Uma conta de armazenamento acessível para clusters originais e novos. Veja Adicionar contas de armazenamento adicionais ao HDInsight e Tipos de armazenamento e funcionalidades para tipos de armazenamento secundário permitidos.
Eis algumas opções:
- Adicione a conta de armazenamento de destino ao cluster original.
- Adicione a conta de armazenamento original ao novo cluster.
- Adicione uma conta de armazenamento intermediária aos clusters originais e novos.
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
Views
o , o Hive suportaSHOW VIEWS
o comando a partir do Hive 2.2.0 no HDInsight 4.0. UtilizeSHOW 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 comandosSHOW MATERIALIZED VIEWS
,DESCRIBE FORMATTED
eCREATE MATERIALIZED VIEW
. Veja Vistas materializadas para obter detalhes. - Para
Constraints
, suportado a partir do Hive 2.1.0 no HDInsight 4.0, utilizeDESCRIBE EXTENDED
para listar restrições de uma tabela e utilizeALTER TABLE
para adicionar restrições. Veja Alterar Restrições de Tabela para obter detalhes.
Copiar tabelas do Hive
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)
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.out
de 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 -R
HDFS .
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.
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.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
- Azure Data Lake Storage Gen2 (Armazenamento do Azure Data Lake Gen2)
- Utilizar arquivos de metadados externos
- Tipos de armazenamento e funcionalidades
- Ação de script para um cluster em execução