Migração da carga de trabalho do Hive para uma 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 individual do Hive no HDInsight 4.0, consulte Exportar/importar o Hive.
Pré-requisitos
Um novo cluster HDInsight com as seguintes configurações:
- Seu sistema de arquivos padrão está na conta de armazenamento de destino. Consulte Usar o armazenamento do Azure com clusters do Azure HDInsight.
- Sua versão de cluster deve corresponder à do cluster de origem.
- Ele usa um novo banco de dados de metastore externo do Hive. Consulte Usar repositórios de metadados externos.
Uma conta de armazenamento acessível a clusters originais e novos. Consulte Adicionar contas de armazenamento adicionais ao HDInsight e Tipos e recursos de armazenamento para obter os tipos de armazenamento secundário permitidos.
Seguem-se 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ário aos clusters original e novo.
Como funciona
Executaremos uma ação de script para exportar tabelas do Hive do cluster original para um diretório HDFS especificado. Consulte Ação de script para 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 para o sistema de arquivos padrão do novo cluster. As tabelas nativas também copiarão seus dados no armazenamento. As tabelas não nativas copiarão apenas 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 Hive padrão do cluster de destino. Consulte Propriedades hive.metastore.warehouse.external.dir
do Hive e hive.metastore.warehouse.dir
.
Os scripts não preservarão permissões de arquivo personalizadas no cluster de destino.
Nota
Este guia suporta a 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
Views
o , o Hive suporta comandosSHOW VIEWS
a partir do Hive 2.2.0 no HDInsight 4.0. UseSHOW CREATE TABLE
para definição de exibição. Para versões anteriores do Hive, consulte o banco de dados SQL do metastore para mostrar exibições. - Para
Materialized Views
, use os comandosSHOW MATERIALIZED VIEWS
,DESCRIBE FORMATTED
eCREATE MATERIALIZED VIEW
. Consulte Visualizações materializadas para obter detalhes. - Para
Constraints
, com suporte a partir do Hive 2.1.0 no HDInsight 4.0, useDESCRIBE EXTENDED
para listar restrições para uma tabela e useALTER TABLE
para adicionar restrições. Consulte Alterar restrições de tabela para obter detalhes.
Copiar tabelas Hive
Aplique a ação de script "exportar" no cluster original com os seguintes campos.
Isso gerará e executará scripts intermediários do Hive. Eles serão salvos no arquivo
<hdfs-export-path>
.Opcionalmente, use
--run-script=false
para personalizá-los antes de executá-los manualmente.Property valor Bash script URI https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/export-hive-data-v01.sh
Tipo(s) de nó(s) 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 bem-sucedida da exportação, aplique a ação de script "importar" no novo cluster com os seguintes campos.
Property valor Bash script URI https://hdiconfigactions.blob.core.windows.net/linuxhivemigrationv01/import-hive-data-v01.sh
Tipo(s) de nó(s) 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 hive_contents.sh
raiz no nó primário de cada cluster e compare o conteúdo do arquivo /tmp/hive_contents.out
de saída. Consulte Conectar-se ao HDInsight (Apache Hadoop) usando SSH.
Limpar o uso adicional de armazenamento
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 dfs -rm -R
HDFS .
Opção: reduzir o uso adicional de armazenamento
A ação de script de exportação provavelmente dobra o uso de armazenamento devido ao Hive. No entanto, é possível limitar o uso de armazenamento adicional migrando manualmente, um banco de dados ou tabela de cada vez.
Especifique
--run-script=false
para ignorar a execução do script Hive gerado. Os scripts de exportação e importação do Hive ainda seriam salvos no caminho de exportação.Execute trechos dos scripts de exportação e importação do Hive banco por banco de dados ou tabela por tabela, limpando manualmente o caminho de exportação após cada banco de dados ou tabela migrada.
Próximos passos
- Azure Data Lake Storage Gen2 (Armazenamento do Azure Data Lake Gen2)
- Usar repositórios de metadados externos
- Tipos e recursos de armazenamento
- Ação de script num cluster em execução
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários