Armazenamento de dados para tabelas internas

O metastore do Dataproc usa mapeamentos entre o Apache Hadoop Distributed File System (HDFS) ou os arquivos do sistema de armazenamento compatíveis com o Hive e as tabelas do Apache Hive para gerenciar totalmente. os metadados. Os conceitos e considerações a seguir são importantes ao anexar um Dataproc ou outro cluster autogerenciado para usar um serviço do metastore do Dataproc como o metastore do Hive.

Conceitos do metastore do Hive

Todos os aplicativos Hive podem ter tabelas externas gerenciadas ou não gerenciadas. Para tabelas internas, o metastore do Hive gerencia não apenas os metadados, mas também os dados dessas tabelas. Por outro lado, para as tabelas externas, o metastore do Hive não gerencia os dados, apenas os metadados dessas tabelas.

Por exemplo, ao excluir uma definição de tabela usando a instrução DROP TABLE do Hive SQL:

drop table foo
  • Para tabelas internas: o metastore do Hive remove essas entradas de metadados no metastore do Hive e também exclui os arquivos associados a essa tabela específica.

  • Para tabelas externas, o metastore do Hive exclui apenas os metadados e mantém os dados associados a essa tabela específica.

Crie um bucket do Cloud Storage

Quando você cria um serviço Metastore do Dataproc, um bucket do Cloud Storage é criado automaticamente no projeto para você. Esse bucket é usado como um armazenamento permanente para armazenar os artefatos e metadados do serviço, como arquivos de despejo e registros de depuração.

Diretório de depósito do Hive

Para que o metastore do Hive funcione corretamente, seja para tabelas internas ou externas, pode ser necessário fornecer o metastore do Dataproc com o diretório do depósito do Hive no momento da criação do serviço. Esse diretório contém subdiretórios que correspondem a tabelas internas e armazenam os dados reais na tabela. Eles geralmente são buckets do Cloud Storage.

Ao disponibilizar o metastore do Dataproc com um diretório de armazenamento, o Metastore cria um bucket de artefatos do Cloud Storage para armazenar artefatos de serviço para consumo.

Se você optar por fornecer um diretório de depósito do Hive:

  • Verifique se o serviço metastore do Dataproc tem permissão para acessar o diretório do armazenamento. Para isso, conceda ao agente de serviço de controle do Metastore do Dataproc o acesso de leitura/gravação de objeto, que é roles/storage.objectAdmin. Essa concessão precisa ser definida no nível do bucket ou superior. A conta de serviço a que você precisa conceder acesso é service-customer-project-number@gcp-sa-metastore.iam.gserviceaccount.com.

    Consulte Controle de acesso do Cloud Storage para saber como conceder permissões de leitura/gravação aos agentes de serviço do metastore do Dataproc no diretório do armazenamento.

Se você optar por não fornecer um diretório de armazenamento do Hive:

  • O Metastore do Dataproc cria automaticamente um diretório de armazenamento para você em um local padrão, gs://your-artifacts-bucket/hive-warehouse.

  • Verifique se a conta de serviço da VM do Dataproc tem permissão para acessar o diretório do armazenamento. Para isso, conceda ao agente de serviço de VM do Dataproc acesso de leitura/gravação de objeto, roles/storage.objectAdmin. Essa concessão precisa ser definida no nível do bucket ou superior.

Como excluir o bucket do Cloud Storage

A exclusão do serviço Metastore do Dataproc não exclui o bucket de artefatos do Cloud Storage Isso ocorre porque seu bucket pode conter dados úteis pós-serviço É preciso excluir o bucket explicitamente

A seguir