

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo di un database MySQL o Amazon Aurora esterno
<a name="emr-hive-metastore-external"></a>

Per utilizzare un database MySQL esterno o Amazon Aurora come metastore Hive, sovrascrivi i valori di configurazione predefiniti per il metastore in Hive per specificare la posizione del database esterno, su un'istanza Amazon RDS MySQL o Amazon Aurora Postgre. SQLinstance

**Nota**  
Hive non supporta né impedisce l'accesso in scrittura simultaneo alle tabelle dei metastore. Se si condividono le informazioni del metastore tra due cluster, è necessario assicurarsi di non scrivere contemporaneamente sulla stessa tabella del metastore, a meno che non si scriva su partizioni diverse della stessa tabella del metastore.

La procedura seguente mostra come sovrascrivere i valori di configurazione predefiniti per la posizione del metastore Hive e avviare un cluster utilizzando la posizione del metastore riconfigurato.

**Per creare un metastore situato al di fuori del cluster EMR**

1. Creare un database MySQL o Aurora. Se si utilizza PostgreSQL, è necessario configurarlo dopo aver eseguito il provisioning del cluster. Solo MySQL è supportato durante la creazione del cluster. Per informazioni sulle differenze tra Aurora MySQL e Aurora PostgreSQL, consulta [Panoramica di Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Overview.html) e [Utilizzo di Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html). Per informazioni su come creare un database Amazon RDS in generale, consulta [https://aws.amazon.com/rds/](https://aws.amazon.com/rds/).

1. Modifica i gruppi di sicurezza per consentire le connessioni JDBC tra il database e il gruppo di sicurezza **ElasticMapReduce-Master**. Per ulteriori informazioni su come modificare i gruppi di sicurezza per l'accesso, consulta [Utilizzo dei gruppi di sicurezza gestiti da Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html).

1. Impostare i valori di configurazione JDBC in `hive-site.xml`:
**Importante**  
Se si forniscono informazioni sensibili, come password, all'API di configurazione di Amazon EMR, queste informazioni vengono visualizzate per gli account che dispongono di autorizzazioni sufficienti. Se si teme che queste informazioni possano essere visualizzate ad altri utenti, creare il cluster con un account amministrativo e limitare gli altri utenti (utenti IAM o con credenziali delegate) ad accedere ai servizi del cluster creando un ruolo che nega esplicitamente le autorizzazioni alla chiave API `elasticmapreduce:DescribeCluster`.

   1. Creare un file di configurazione denominato `hiveConfiguration.json` contenente modifiche apportate a `hive-site.xml` come mostrato nel seguente esempio.

       Sostituiscilo *hostname* con l'indirizzo DNS dell'istanza Amazon RDS che esegue il database *username* e *password* con le credenziali del database. Per ulteriori informazioni sulla connessione a istanze database MySQL e Aurora, consulta [Connessione a un'istanza database che esegue il motore del database di MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) e [Connessione a un cluster Athena DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html) nella *Guida per l'utente di Amazon RDS*. `javax.jdo.option.ConnectionURL` è la stringa di connessione JDBC per un metastore JDBC. `javax.jdo.option.ConnectionDriverName` è il nome della classe del driver per un metastore JDBC.

      I driver MySQL JDBC sono installati da Amazon EMR. 

      La proprietà value non può contenere spazi o ritorni a capo. Deve essere visualizzato tutto su una riga.

      ```
      [
          {
            "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. Fai riferimento al `hiveConfiguration.json` file quando crei il cluster, come mostrato nel comando seguente. AWS CLI In questo comando, il file è memorizzato in locale ed è anche possibile caricare il file da Amazon S3 e farvi riferimento, per esempio `s3://DOC-EXAMPLE-BUCKET/hiveConfiguration.json`.
**Nota**  
I caratteri di continuazione della riga Linux (\$1) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuovili o sostituiscili con un accento circonflesso (^).

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

1. Effettua la connessione al nodo primario del cluster. 

   Per informazioni su come connettersi al nodo master, consulta la sezione [Connect to the primary node using SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) (Connessione al nodo primario tramite SSH) nella *Guida alla gestione di Amazon EMR*.

1. Crea le tabelle Hive specificando il percorso su Amazon S3 immettendo un comando simile al seguente:

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

1. Aggiungere lo script Hive al cluster in esecuzione.

Il cluster Hive viene eseguito utilizzando il metastore situato in Amazon RDS. Avviare tutti i cluster Hive aggiuntivi che condividono questo metastore specificando la posizione del metastore. 