Use external metadata stores in Azure HDInsight (Utilizar arquivos de metadados externos no Azure HDInsight)

Importante

O metastore padrão fornece uma camada básica do Banco de Dados SQL do Azure com apenas 5 DTU e 2 GB de tamanho máximo de dados (NÃO ATUALIZÁVEL)! Utilize-o apenas para fins de GQ e testes. Para cargas de trabalho de produção ou grandes, recomendamos migrar para um metastore externo!

O HDInsight permite que você assuma o controle de seus dados e metadados com armazenamentos de dados externos. Esse recurso está disponível para metastore Apache Hive, metastore Apache Oozie e banco de dados Apache Ambari.

O metastore do Apache Hive no HDInsight é uma parte essencial da arquitetura do Apache Hadoop. Um metastore é o repositório de esquema central. O metastore é usado por outras ferramentas de acesso a big data, como Apache Spark, Interactive Query (LLAP), Presto, ou Apache Pig. O HDInsight usa um Banco de Dados SQL do Azure como metastore do Hive.

Arquitetura de armazenamento de metadados do HDInsight Hive.

Há duas maneiras de configurar um metastore para seus clusters HDInsight:

Metastore padrão

Por padrão, o HDInsight cria um metastore com cada tipo de cluster. Em vez disso, você pode especificar um metastore personalizado. O metastore padrão inclui as seguintes considerações:

  • Recursos limitados. Ver aviso no topo da página.

  • Sem custo adicional. O HDInsight cria um metastore com cada tipo de cluster sem qualquer custo adicional para você.

  • O metastore padrão faz parte do ciclo de vida do cluster. Quando você exclui um cluster, o metastore e os metadados correspondentes também são excluídos.

  • O metastore padrão é recomendado apenas para cargas de trabalho simples. Cargas de trabalho que não exigem vários clusters e não precisam de metadados preservados além do ciclo de vida do cluster.

  • O metastore padrão não pode ser compartilhado com outros clusters.

Metastore personalizado

O HDInsight também oferece suporte a metastores personalizados, que são recomendados para clusters de produção:

  • Você especifica seu próprio Banco de Dados SQL do Azure como o metastore.

  • O ciclo de vida do metastore não está vinculado a um ciclo de vida de clusters, portanto, você pode criar e excluir clusters sem perder metadados. Os metadados, como os esquemas do Hive, persistirão mesmo depois que você excluir e recriar o cluster HDInsight.

  • Um metastore personalizado permite anexar vários clusters e tipos de cluster a esse metastore. Por exemplo, um único metastore pode ser compartilhado entre clusters Interactive Query, Hive e Spark no HDInsight.

  • Você paga pelo custo de um metastore (Banco de Dados SQL do Azure) de acordo com o nível de desempenho escolhido.

  • Você pode aumentar a escala do metastore conforme necessário.

  • O cluster e o metastore externo devem ser hospedados na mesma região.

Caso de uso do repositório de metadados do HDInsight Hive.

Criar e configurar o Banco de Dados SQL do Azure para o metastore personalizado

Crie ou tenha um Banco de Dados SQL do Azure existente antes de configurar um metastore personalizado do Hive para um cluster HDInsight. Para obter mais informações, consulte Guia de início rápido: criar um único banco de dados no Banco de Dados SQL do Azure.

Quando você cria o cluster, o serviço HDInsight precisa se conectar ao metastore externo e verificar suas credenciais. Configure as regras de firewall do Banco de Dados SQL do Azure para permitir que os serviços e recursos do Azure acessem o servidor. Habilite essa opção no portal do Azure selecionando Definir firewall do servidor. Em seguida, selecione Não abaixo de Negar acesso à rede pública e Sim abaixo de Permitir que os serviços e recursos do Azure acessem este servidor para o Banco de Dados SQL do Azure. Para obter mais informações, consulte Criar e gerenciar regras de firewall IP

Os pontos de extremidade privados para repositórios SQL só são suportados nos clusters criados com outbound ResourceProviderConnection. Para saber mais, consulte esta documentação.

Defina o botão Firewall do servidor.

permitir acesso aos serviços do Azure.

Selecione um metastore personalizado durante a criação do cluster

Você pode apontar seu cluster para um Banco de Dados SQL do Azure criado anteriormente a qualquer momento. Para a criação de cluster através do portal, a opção é especificada nas configurações do Storage > Metastore.

Portal do Azure do Repositório de Metadados do Hive do HDInsight.

Diretrizes do metastore do Apache Hive

Nota

Use um metastore personalizado sempre que possível, para ajudar a separar recursos de computação (seu cluster em execução) e metadados (armazenados no metastore). Comece com a camada S2, que fornece 50 DTU e 250 GB de armazenamento. Se você vir um afunilamento, poderá aumentar a escala do banco de dados.

  • Se você pretende que vários clusters HDInsight acessem dados separados, use um banco de dados separado para o metastore em cada cluster. Se você compartilhar um metastore em vários clusters HDInsight, isso significa que os clusters usam os mesmos metadados e arquivos de dados do usuário subjacentes.

  • Faça backup de sua metastore personalizada periodicamente. O Banco de Dados SQL do Azure gera backups automaticamente, mas o período de retenção de backup varia. Para obter mais informações, consulte Saiba mais sobre backups automáticos do Banco de dados SQL.

  • Localize o metastore e o cluster HDInsight na mesma região. Esta configuração proporcionará o mais alto desempenho e as menores taxas de saída da rede.

  • Monitore seu metastore quanto ao desempenho e à disponibilidade usando as ferramentas de Monitoramento do Banco de Dados SQL do Azure ou os logs do Azure Monitor.

  • Quando uma nova versão superior do Azure HDInsight é criada em relação a um banco de dados de metastore personalizado existente, o sistema atualiza o esquema do metastore. A atualização é irreversível sem restaurar o banco de dados a partir do backup.

  • Se você compartilhar um metastore em vários clusters, verifique se todos os clusters são a mesma versão do HDInsight. Diferentes versões do Hive usam diferentes esquemas de banco de dados de metastore. Por exemplo, não é possível compartilhar um metastore entre clusters versionados do Hive 2.1 e Hive 3.1.

  • No HDInsight 4.0, o Spark e o Hive usam catálogos independentes para acessar tabelas SparkSQL ou Hive. Uma tabela criada pelo Spark está no catálogo do Spark. Uma tabela criada pelo Hive vive no catálogo do Hive. Esse comportamento é diferente do HDInsight 3.6, onde o Hive e o Spark compartilharam um catálogo comum. A integração do Hive e do Spark no HDInsight 4.0 depende do Hive Warehouse Connector (HWC). A HWC funciona como uma ponte entre Spark e Hive. Saiba mais sobre o Hive Warehouse Connector.

  • No HDInsight 4.0, se você quiser compartilhar o metastore entre o Hive e o Spark, poderá fazer isso alterando a propriedade metastore.catalog.default para hive no cluster do Spark. Você pode encontrar esta propriedade em Ambari Advanced spark2-hive-site-override. É importante entender que o compartilhamento do metastore só funciona para tabelas de hive externas, isso não funcionará se você tiver tabelas de hive internas/gerenciadas ou tabelas ACID.

Atualizando a senha personalizada do metastore do Hive

Ao usar um banco de dados de metastore personalizado do Hive, você tem a capacidade de alterar a senha do Banco de Dados SQL. Se você alterar a senha do metastore personalizado, os serviços do Hive não funcionarão até que você atualize a senha no cluster HDInsight.

Para atualizar a senha do metastore do Hive:

  1. Abra a IU do Ambari.
  2. Clique em Serviços --> Hive --> Configurações --> Banco de dados.
  3. Atualize os campos Senha do Banco de Dados para a nova senha do banco de dados do SQL Server.
  4. Clique no botão Testar Ligação para se certificar de que a nova palavra-passe funciona.
  5. Clique no botão Guardar.
  6. Siga as instruções do Ambari para salvar a configuração e reiniciar os serviços necessários.

Apache Oozie metastore

O Apache Oozie é um sistema de coordenação de fluxos de trabalho que gere as tarefas do Hadoop. O Oozie suporta trabalhos Hadoop para Apache MapReduce, Pig, Hive e outros. O Oozie usa um metastore para armazenar detalhes sobre fluxos de trabalho. Para aumentar o desempenho ao usar o Oozie, você pode usar o Banco de Dados SQL do Azure como um metastore personalizado. O metastore fornece acesso aos dados de trabalho do Oozie depois que você exclui o cluster.

Para obter instruções sobre como criar um metastore do Oozie com o Banco de Dados SQL do Azure, consulte Usar o Apache Oozie para fluxos de trabalho.

Atualizando a senha personalizada do metastore do Oozie

Ao usar um banco de dados de metastore personalizado do Oozie, você tem a capacidade de alterar a senha do Banco de Dados SQL. Se você alterar a senha do metastore personalizado, os serviços do Oozie não funcionarão até que você atualize a senha no cluster HDInsight.

Para atualizar a senha do metastore do Oozie:

  1. Abra a IU do Ambari.
  2. Clique em Serviços --> Oozie --> Configurações --> Banco de dados.
  3. Atualize os campos Senha do Banco de Dados para a nova senha do banco de dados do SQL Server.
  4. Clique no botão Testar Ligação para se certificar de que a nova palavra-passe funciona.
  5. Clique no botão Guardar.
  6. Siga as instruções do Ambari para salvar a configuração e reiniciar os serviços necessários.

Ambari DB Personalizado

Para usar seu próprio banco de dados externo com o Apache Ambari no HDInsight, consulte Banco de dados Apache Ambari personalizado.

Próximos passos