

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar um banco de dados externo MySQL ou Amazon Aurora
<a name="emr-hive-metastore-external"></a>

Para usar um banco de dados MySQL externo ou o Amazon Aurora como seu metastore do Hive, você substitui os valores de configuração padrão do metastore no Hive para especificar a localização do banco de dados externo, seja em uma instância MySQL do Amazon RDS ou em um Amazon Aurora Postgre. SQLinstance

**nota**  
O Hive não oferece suporte nem impede o acesso simultâneo para gravação em tabelas da metastore. Se você compartilhar informações do metastore entre dois clusters, deverá garantir não gravar na mesma tabela do metastore simultaneamente, a menos que esteja gravando em partições diferentes da mesma tabela do metastore.

O procedimento a seguir mostra como substituir os valores de configuração padrão para a localização da metastore do Hive e iniciar um cluster usando a localização da metastore reconfigurada.

**Para criar uma metastore localizada fora do cluster do EMR**

1. Crie um banco de dados MySQL ou Aurora PostgreSQL. Se você usa o PostgreSQL, deve configurá-lo depois de provisionar o cluster. Somente o MySQL é compatível na criação do cluster. Para obter informações sobre as diferenças entre o Aurora MySQL e o Aurora PostgreSQL, consulte [Visão geral do Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Overview.html) e [Trabalhar com o Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html). Para obter informações sobre como criar um banco de dados do Amazon RDS em geral, consulte [https://aws.amazon.com/rds/](https://aws.amazon.com/rds/).

1. Modifique seus grupos de segurança para permitir conexões JDBC entre seu banco de dados e o grupo de segurança **ElasticMapReduce-Master**. Para obter informações sobre como modificar os grupos de segurança para obter acesso, consulte [Working with Amazon EMR-managed security groups](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html).

1. Defina valores de configuração do JDBC em `hive-site.xml`:
**Importante**  
Se você fornecer informações confidenciais, como senhas, à API de configuração do Amazon EMR, estas informações serão exibidas para as contas que tiverem permissões suficientes. Se você teme que essas informações possam ser exibidas para outros usuários, crie o cluster com uma conta administrativa e limite os outros usuários (usuários do IAM ou aqueles com credenciais delegadas) para o acesso a serviços no cluster, criando uma função que negue permissões explicitamente para a chave de API `elasticmapreduce:DescribeCluster`.

   1. Crie um arquivo de configuração chamado `hiveConfiguration.json`, que contém edições em `hive-site.xml`, conforme mostrado no exemplo a seguir.

       {{hostname}}Substitua pelo endereço DNS da sua instância do Amazon RDS executando o banco de dados {{username}} e {{password}} pelas credenciais do seu banco de dados. Para obter mais informações sobre como se conectar a instâncias de banco de dados MySQL e Aurora, consulte [Conectar-se a uma instância de banco de dados executando o mecanismo de banco de dados MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) e [Conectar-se a um cluster de banco de dados do Athena](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html) no *Guia do usuário do Amazon RDS*. `javax.jdo.option.ConnectionURL` é a string de conexão JDBC para um metastore JDBC. `javax.jdo.option.ConnectionDriverName` é o nome da classe de driver para um metastore JDBC.

      Os drivers JDBC MySQL são instalados pelo Amazon EMR. 

      A propriedade "value" não pode conter espaços ou retornos de carro. Eles devem aparecer todos em uma única linha.

      ```
      [
          {
            "Classification": "hive-site",
            "Properties": {
              "javax.jdo.option.ConnectionURL": "jdbc:mysql://{{hostname}}:3306/hive?createDatabaseIfNotExist=true",
              "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver",
              "javax.jdo.option.ConnectionUserName": "username",
              "javax.jdo.option.ConnectionPassword": "password"
            }
          }
        ]
      ```

   1. Faça referência ao `hiveConfiguration.json` arquivo ao criar o cluster, conforme mostrado no AWS CLI comando a seguir. Neste comando, o arquivo é armazenado localmente, você também pode carregar o arquivo para o Amazon S3 e consultá-lo, por exemplo, `s3://{{DOC-EXAMPLE-BUCKET}}/hiveConfiguration.json`.
**nota**  
Os caracteres de continuação de linha do Linux (\\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

      ```
      aws emr create-cluster --release-label {{emr-7.13.0}} --instance-type m5.xlarge --instance-count 2 \
      --applications Name=Hive --configurations file://hiveConfiguration.json --use-default-roles
      ```

1. Conecte-se ao nó primário do cluster. 

   Para obter informações sobre como se conectar ao nó primário, consulte [Connect to the primary node using SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) no *Guia de gerenciamento do Amazon EMR*.

1. Crie tabelas do Hive especificando o local no Amazon S3 ao digitar um comando semelhante ao seguinte:

   ```
   CREATE EXTERNAL TABLE IF NOT EXISTS table_name
   (
   key int,
   value int
   )
   LOCATION s3://{{DOC-EXAMPLE-BUCKET}}/hdfs/
   ```

1. Adicione seu script do Hive ao cluster em execução.

O cluster do Hive é executado com o uso do metastore localizado no Amazon RDS. Execute todos os clusters Hive adicionais que compartilham essa metastore, especificando a localização da metastore. 