

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren eines externen Metastores für Hive
<a name="emr-metastore-external-hive"></a>

Hive zeichnet Metastore-Daten standardmäßig in einer MySQL-Datenbank im Dateisystem des Primärknotens auf. Die Metastore enthält eine Beschreibung der Tabelle und der zugrunde liegenden Daten, auf denen sie beruht. Das schließt auch die Partitionsnamen, Datentypen usw. ein. Wenn ein Cluster beendet wird, werden alle Cluster-Knoten heruntergefahren – einschließlich Primärknoten. Wenn dies geschieht, gehen lokale Daten verloren, da die Dateisysteme der Knoten flüchtigen Speicher verwenden. Wenn Sie der Metastore dauerhaft sein soll, müssen Sie einen *externen Metastore* außerhalb des Clusters erstellen.

Ihnen stehen zwei Optionen für einen externen Metastore zur Verfügung:
+ AWS Glue-Datenkatalog (nur Amazon EMR Version 5.8.0 oder höher).

  Weitere Informationen finden Sie unter [Verwenden des AWS Glue-Datenkatalogs als Metastore für Hive](emr-hive-metastore-glue.md).
+ Amazon RDS oder Amazon Aurora.

  Weitere Informationen finden Sie unter [Verwenden einer externen MySQL-Datenbank oder von Amazon Aurora;](emr-hive-metastore-external.md).

**Anmerkung**  
Wenn Sie Hive 3 verwenden und zu viele Verbindungen zu Hive Metastore haben, konfigurieren Sie den Parameter `datanucleus.connectionPool.maxPoolSize` so, dass er einen kleineren Wert hat, oder erhöhen Sie die Anzahl der Verbindungen, die der Datenbankserver verarbeiten kann. Die erhöhte Anzahl von Verbindungen ist darauf zurückzuführen, wie Hive die maximale Anzahl von JDBC-Verbindungen berechnet. [Informationen zur Berechnung des optimalen Leistungswerts finden Sie unter Hive-Konfigurationseigenschaften.](https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-datanucleus.connectionPool.maxPoolSize.1)

# Verwenden des AWS Glue-Datenkatalogs als Metastore für Hive
<a name="emr-hive-metastore-glue"></a>

Mit Amazon EMR Version 5.8.0 oder höher können Sie Hive so konfigurieren, dass der AWS Glue-Datenkatalog als Metastore verwendet wird. Wir empfehlen diese Konfiguration, wenn Sie einen persistenten Metastore oder einen gemeinsamen Metastore für verschiedene Cluster, Services, Anwendungen oder AWS -Konten benötigen.

AWS Glue ist ein vollständig verwalteter ETL-Service (Extrahieren, Transformieren und Laden), mit dem Sie Ihre Daten einfach und kostengünstig kategorisieren, bereinigen, anreichern und zuverlässig zwischen verschiedenen Datenspeichern verschieben können. Der AWS Glue Data Catalog bietet ein einheitliches Metadaten-Repository für eine Vielzahl von Datenquellen und Datenformaten, das sich in Amazon EMR sowie Amazon RDS, Amazon Redshift, Redshift Spectrum, Athena und jede mit dem Apache Hive Metastore kompatible Anwendung integrieren lässt. AWS Glue-Crawler können automatisch Schemas aus Quelldaten in Amazon S3 ableiten und die zugehörigen Metadaten im Datenkatalog speichern. Weitere Informationen zum Datenkatalog finden Sie unter [Füllen des AWS Glue-Datenkatalogs im *AWS Glue-Entwicklerhandbuch*](https://docs.aws.amazon.com/glue/latest/dg/populate-data-catalog.html).

Für AWS Glue fallen separate Gebühren an. Es gibt eine monatliche Gebühr für das Speichern und Zugreifen auf die Metadaten im Datenkatalog, einen Stundensatz, der pro Minute für AWS Glue ETL-Jobs und Crawler-Laufzeit abgerechnet wird, und einen Stundensatz, der pro Minute für jeden bereitgestellten Entwicklungsendpunkt abgerechnet wird. Der Datenkatalog ermöglicht Ihnen die gebührenfreie Speicherung von bis zu einer Million Objekten. Wenn Sie mehr als eine Million Objekte speichern, fällt eine Gebühr von 1 USD für jeweils 100.000 zusätzliche Objekte an. Im Data Catalog ist ein Objekt eine Tabelle, eine Partition oder eine Datenbank. Weitere Informationen finden Sie unter [Glue-Preise](https://aws.amazon.com/glue/pricing).

**Wichtig**  
Wenn Sie vor dem 14. August 2017 Tabellen mit Amazon Athena oder Amazon Redshift Spectrum erstellt haben, werden Datenbanken und Tabellen in einem von Athena verwalteten Katalog gespeichert, der vom Glue-Datenkatalog getrennt ist. AWS Um Amazon EMR mit diesen Tabellen zu integrieren, müssen Sie ein Upgrade auf den AWS Glue Data Catalog durchführen. Weitere Informationen finden Sie unter [Upgrade auf den AWS Glue-Datenkatalog](https://docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html) im *Amazon Athena Athena-Benutzerhandbuch*.

## AWS Glue Data Catalog als Metastore angeben
<a name="emr-hive-glue-configure"></a>

Sie können den AWS Glue-Datenkatalog mithilfe der Amazon EMR-API AWS-Managementkonsole AWS CLI, oder als Metastore angeben. Wenn Sie die CLI oder API verwenden, verwenden Sie die Konfigurationsklassifizierung für Hive, um den Data Catalog anzugeben. Darüber hinaus können Sie mit Amazon EMR 5.16.0 und höher die Konfigurationsklassifizierung verwenden, um einen Datenkatalog in einem anderen Format anzugeben. AWS-Konto**Wenn Sie die Konsole verwenden, können Sie den Data Catalog mit den **erweiterten Optionen oder den Schnelloptionen** angeben.**

------
#### [ Console ]

**So geben Sie AWS Glue Data Catalog mit der Konsole als Hive-Metastore an**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon EMR-Konsole unter [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr).

1. Wählen Sie im linken Navigationsbereich unter **EMR in EC2** die Option **Cluster** und dann **Cluster erstellen** aus.

1. **Wählen Sie unter **Anwendungspaket** die Option **Core Hadoop oder Benutzerdefiniert** aus. **HBase**** Wenn Sie Ihren Cluster anpassen, stellen Sie sicher, dass Sie Hive oder HCatalog als eine Ihrer Anwendungen auswählen.

1. Aktivieren Sie unter **Einstellungen für den AWS Glue Data Catalog** das Kontrollkästchen **Für Hive-Tabellenmetadaten** verwenden.

1. Wählen Sie alle anderen Optionen aus, die für Ihren Cluster gelten. 

1. Um Ihren Cluster jetzt zu starten, wählen Sie **Cluster erstellen** aus.

------
#### [ CLI ]

**Um den AWS Glue-Datenkatalog als Hive-Metastore anzugeben, mit dem AWS CLI**

Weitere Informationen zum Angeben einer Konfigurationsklassifizierung mithilfe der AWS CLI und EMR-API finden Sie unter[Anwendungen konfigurieren](emr-configure-apps.md).
+ Geben Sie den Wert für `hive.metastore.client.factory.class` mittels der Konfigurationsklassifizierung `hive-site` wie im folgenden Beispiel gezeigt an:

  ```
  [
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"
      }
    }
  ]
  ```

  Wenn Sie in den EMR-Release-Versionen 5.28.0, 5.28.1, 5.29.0 oder 6.x einen Cluster mit dem AWS Glue-Datenkatalog als Metastore erstellen, setzen Sie den Wert auf. `hive.metastore.schema.verification` `false` Dadurch wird verhindert, dass Hive und das Metastore-Schema anhand HCatalog von MySQL validieren. Ohne diese Konfiguration wird die primäre Instanzgruppe nach der Neukonfiguration auf Hive oder gesperrt. HCatalog 

  ```
  [
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory",
        "hive.metastore.schema.verification": "false"
      }
    }
  ]
  ```

  Wenn Sie bereits über einen Cluster in EMR-Version 5.28.0, 5.28.1 oder 5.29.0 verfügen, können Sie die Primär-Instance-Gruppe `hive.metastore.schema.verification` mit folgenden Informationen auf `false` festlegen:

  ```
     
      Classification = hive-site
      Property       = hive.metastore.schema.verification
      Value          = false
  ```

  Um einen Datenkatalog in einem anderen AWS Konto anzugeben, fügen Sie die `hive.metastore.glue.catalogid` Eigenschaft hinzu, wie im folgenden Beispiel gezeigt. Ersetzen Sie `acct-id` durch das AWS -Konto des Data Catalog.

  ```
  [
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory",
        "hive.metastore.schema.verification": "false",
        "hive.metastore.glue.catalogid": "acct-id"
      }
    }
  ]
  ```

------

## IAM-Berechtigungen
<a name="emr-hive-glue-permissions"></a>

Das EC2-Instanzprofil für einen Cluster muss über IAM-Berechtigungen für AWS Glue-Aktionen verfügen. Wenn Sie die Verschlüsselung für AWS Glue Data Catalog-Objekte aktivieren, muss die Rolle außerdem berechtigt sein, die für die Verschlüsselung AWS KMS key verwendeten Daten zu verschlüsseln, zu entschlüsseln und zu generieren.

### Berechtigungen für AWS Glue-Aktionen
<a name="emr-hive-glue-permissions-actions"></a>

Wenn Sie das standardmäßige EC2-Instance-Profil für Amazon EMR verwenden, ist keine Aktion erforderlich. Die `AmazonElasticMapReduceforEC2Role` verwaltete Richtlinie, die an die angehängt ist, `EMR_EC2_DefaultRole` ermöglicht alle erforderlichen AWS Glue-Aktionen. Wenn Sie jedoch ein benutzerdefiniertes EC2-Instanzprofil und Berechtigungen angeben, müssen Sie die entsprechenden AWS Glue-Aktionen konfigurieren. Verwenden Sie hierzu die verwaltete Richtlinie `AmazonElasticMapReduceforEC2Role` als Ausgangspunkt. Weitere Informationen finden Sie unter [Servicerolle für Cluster-EC2-Instances (EC2-Instance-Profil)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html) im *Verwaltungshandbuch für Amazon EMR*.

### Berechtigungen zum Verschlüsseln und Entschlüsseln von AWS Glue Data Catalog
<a name="emr-hive-glue-permissions-encrypt"></a>

Ihr Instance-Profil benötigt die Erlaubnis, Daten mithilfe Ihres Schlüssels zu verschlüsseln und zu entschlüsseln. Sie müssen diese Berechtigungen *nicht* konfigurieren, wenn die beiden folgenden Aussagen zutreffen:
+ Sie aktivieren die Verschlüsselung für AWS Glue Data Catalog-Objekte mithilfe von verwalteten Schlüsseln für AWS Glue.
+ Sie verwenden einen Cluster, der sich im selben Verzeichnis befindet AWS-Konto wie der AWS Glue-Datenkatalog.

Andernfalls müssen Sie die folgende Anweisung der Berechtigungsrichtlinie hinzufügen, die mit Ihrem EC2-Instance-Profil verknüpft ist. 

Weitere Informationen zur Verschlüsselung von AWS Glue Data Catalog finden Sie unter [Verschlüsselung Ihres Datenkatalogs](https://docs.aws.amazon.com/glue/latest/dg/encrypt-glue-data-catalog.html) im *AWS Glue Developer Guide*.

### Ressourcenbasierte Berechtigungen
<a name="emr-hive-glue-permissions-resource"></a>

Wenn Sie AWS Glue in Verbindung mit Hive, Spark oder Presto in Amazon EMR verwenden, unterstützt AWS Glue ressourcenbasierte Richtlinien zur Steuerung des Zugriffs auf Datenkatalogressourcen. Zu diesen Ressourcen gehören Datenbanken, Tabellen, Verbindungen und benutzerdefinierte Funktionen. Weitere Informationen finden Sie unter [Verwenden von ressourcenbasierten Richtlinien für AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html) im *AWS -Glue-Entwicklerhandbuch*.

Wenn Sie ressourcenbasierte Richtlinien verwenden, um den Zugriff auf AWS Glue von Amazon EMR aus zu beschränken, muss der Principal, den Sie in der Berechtigungsrichtlinie angeben, der Rollen-ARN sein, der dem EC2-Instance-Profil zugeordnet ist, das bei der Erstellung eines Clusters angegeben wird. Für eine ressourcenbasierte Richtlinie, die an einen Katalog angehängt ist, können Sie beispielsweise den Rollen-ARN für die Standarddienstrolle für Cluster-EC2-Instances *EMR\$1EC2\$1DefaultRole* wie folgt angeben: `Principal`

```
arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole
```

Die *acct-id* kann sich von der AWS Glue-Konto-ID unterscheiden. Dies ermöglicht den Zugriff von EMR-Clustern in verschiedenen Konten aus. Sie können mehrere Principals angeben, von denen jeder aus einem anderen Konto stammt.

## Überlegungen zur Verwendung von AWS Glue Data Catalog
<a name="emr-hive-glue-considerations-hive"></a>

Beachten Sie die folgenden Punkte, wenn Sie den AWS Glue-Datenkatalog als Metastore mit Hive verwenden:
+ Das Hinzufügen von JARs Hilfsmitteln mithilfe der Hive-Shell wird nicht unterstützt. Um das Problem zu umgehen, verwenden Sie die `hive-site` Konfigurationsklassifizierung, um die `hive.aux.jars.path` Eigenschaft festzulegen, wodurch dem Hive-Klassenpfad JARs ein Hilfsprogramm hinzugefügt wird.
+ [Hive-Transaktionen](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions) werden nicht unterstützt.
+ Das Umbenennen von Tabellen in AWS Glue wird nicht unterstützt.
+ Wenn Sie eine Hive-Tabelle erstellen, ohne eine `LOCATION` anzugeben, werden die Tabellendaten an dem in der Eigenschaft `hive.metastore.warehouse.dir` angegebenen Ort gespeichert. Standardmäßig ist dies ein Speicherort in HDFS. Wenn ein anderer Cluster auf die Tabelle zugreifen muss, schlägt er fehl, sofern er nicht über ausreichende Berechtigungen für den Cluster verfügt, der die Tabelle erstellt hat. Da HDFS-Speicher vorübergehend ist, gehen außerdem die Tabellendaten verloren, wenn der Cluster beendet wird, und die Tabelle muss neu erstellt werden. Wir empfehlen, dass Sie `LOCATION` in Amazon S3 a angeben, wenn Sie eine Hive-Tabelle mit AWS Glue erstellen. Alternativ können Sie die `hive-site`-Konfigurationsklassifizierung verwenden, um einen Speicherort in Amazon S3 für `hive.metastore.warehouse.dir` anzugeben, der für alle Hive-Tabellen gilt. Wenn eine Tabelle an einem HDFS-Speicherort erstellt wurde und der Cluster, der sie erstellt hat, noch läuft, können Sie den Tabellenspeicherort von AWS Glue aus auf Amazon S3 aktualisieren. Weitere Informationen finden Sie unter [Arbeiten mit Tabellen auf der AWS Glue-Konsole](https://docs.aws.amazon.com/glue/latest/dg/console-tables.html) im *AWS Glue-Entwicklerhandbuch*. 
+ Partitionswerte, die Anführungszeichen und Apostrophe enthalten, werden nicht unterstützt, zum Beispiel `PARTITION (owner="Doe's").`
+ [Spaltenstatistiken](https://cwiki.apache.org/confluence/display/Hive/StatsDev#StatsDev-ColumnStatistics) werden für emr-5.31.0 und höher unterstützt.
+ Die Verwendung der [Hive-Autorisierung](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization) wird nicht unterstützt. Als Alternative sollten Sie die Verwendung [ressourcenbasierter Richtlinien für AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html) in Betracht ziehen. Weitere Informationen finden Sie unter [Verwenden von ressourcenbasierten Richtlinien für Amazon EMR Access to AWS Glue](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) Data Catalog.
+ [Hive-Einschränkungen](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Constraints) werden nicht unterstützt.
+ Die [kostenbasierte Optimierung in Hive](https://cwiki.apache.org/confluence/display/Hive/Cost-based+optimization+in+Hive) wird nicht unterstützt.
+ Die Einstellung `hive.metastore.partition.inherit.table.properties` wird nicht unterstützt. 
+ Die Verwendung der folgenden Metastore-Konstanten wird nicht unterstützt: `BUCKET_COUNT, BUCKET_FIELD_NAME, DDL_TIME, FIELD_TO_DIMENSION, FILE_INPUT_FORMAT, FILE_OUTPUT_FORMAT, HIVE_FILTER_FIELD_LAST_ACCESS, HIVE_FILTER_FIELD_OWNER, HIVE_FILTER_FIELD_PARAMS, IS_ARCHIVED, META_TABLE_COLUMNS, META_TABLE_COLUMN_TYPES, META_TABLE_DB, META_TABLE_LOCATION, META_TABLE_NAME, META_TABLE_PARTITION_COLUMNS, META_TABLE_SERDE, META_TABLE_STORAGE, ORIGINAL_LOCATION`.
+ Wenn Sie einen Prädikatausdruck verwenden, müssen sich explizite Werte auf der rechten Seite des Vergleichsoperators befinden. Andernfalls schlagen Abfragen möglicherweise fehl.
  + **Richtig**: `SELECT * FROM mytable WHERE time > 11`
  + **Falsch**: `SELECT * FROM mytable WHERE 11 > time`
+ Die Amazon EMR-Versionen 5.32.0 und 6.3.0 und höher unterstützen die Verwendung benutzerdefinierter Funktionen () UDFs in Prädikatausdrücken. Wenn Sie frühere Versionen verwenden, schlagen Ihre Abfragen möglicherweise fehl, weil Hive versucht, die Abfrageausführung zu optimieren.
+ [Temporäre Tabellen](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-TemporaryTables) werden nicht unterstützt.
+ Wir empfehlen, Tabellen mithilfe von Anwendungen über Amazon EMR zu erstellen, anstatt sie direkt mit AWS Glue zu erstellen. Das Erstellen einer Tabelle mit AWS Glue kann dazu führen, dass erforderliche Felder fehlen und Abfrageausnahmen auftreten.
+ In EMR 5.20.0 oder höher wird das parallel Partitionsbereinigen automatisch für Spark und Hive aktiviert, wenn AWS Glue Data Catalog als Metastore verwendet wird. Diese Änderung reduziert die Zeit für die Abfrageplanung erheblich, da mehrere Anfragen parallel ausgeführt werden, um Partitionen abzurufen. Die Gesamtzahl der Segmente, die gleichzeitig ausgeführt werden können, liegt zwischen 1 und 10. Der Standardwert ist 5, was eine empfohlene Einstellung ist. Sie können dies ändern, indem Sie die Eigenschaft `aws.glue.partition.num.segments` in der `hive-site`-Konfigurationsklassifizierung angeben. Wenn eine Drosselung auftritt, können Sie das Feature ausschalten, indem Sie den Wert auf 1 ändern. Weitere Informationen finden Sie unter [AWS -Glue-Segmentstruktur](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-partitions.html#aws-glue-api-catalog-partitions-Segment).

# Verwenden einer externen MySQL-Datenbank oder von Amazon Aurora;
<a name="emr-hive-metastore-external"></a>

Um eine externe MySQL-Datenbank oder Amazon Aurora als Ihren Hive-Metastore zu verwenden, überschreiben Sie die Standardkonfigurationswerte für den Metastore in Hive, um den externen Datenbankspeicherort anzugeben, entweder auf einer Amazon RDS MySQL-Instance oder einem Amazon Aurora Postgre. SQLinstance

**Anmerkung**  
Von Hive werden gleichzeitige Schreibzugriffe auf Metastore-Tabellen weder unterstützt noch verhindert. Wenn zwei Cluster gemeinsam Metastore-Daten nutzen, müssen Sie sicherstellen, dass Sie nicht gleichzeitig in dieselbe Metastore-Tabelle schreiben, es sei denn, sie schreiben auf verschiedene Partitionen derselben Metastore-Tabelle.

Das folgende Verfahren zeigt, wie Sie die Standardkonfigurationswerte für den Speicherort des Hive-Metastores überschreiben und einen Cluster mit dem neu konfigurierten Metastore-Speicherort starten.

**So erstellen Sie einen Metastore außerhalb des EMR-Clusters**

1. Erstellen Sie eine MySQL- oder Aurora-PostgreSQL-Datenbank. Wenn Sie PostgreSQL verwenden, müssen Sie es konfigurieren, nachdem Sie Ihren Cluster bereitgestellt haben. Bei der Clustererstellung wird nur MySQL unterstützt. Informationen zu den Unterschieden zwischen Aurora MySQL und Aurora PostgreSQL finden Sie unter [Überblick über Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Overview.html) und [Arbeiten mit Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html). Allgemeine Informationen zum Erstellen einer Amazon RDS-Datenbank finden Sie unter [https://aws.amazon.com/rds/](https://aws.amazon.com/rds/).

1. Ändern Sie Ihre Sicherheitsgruppen, um JDBC-Verbindungen zwischen Ihrer Datenbank und der **ElasticMapReduce-Master-Sicherheitsgruppe** zuzulassen. Informationen zum Ändern Ihrer Sicherheitsgruppen für den Zugriff finden Sie unter [Arbeiten mit von Amazon EMR verwalteten Sicherheitsgruppen](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html).

1. Legen Sie die JDBC-Konfigurationswerte in `hive-site.xml` fest:
**Wichtig**  
Wenn Sie sensible Daten wie z. B. Passwörter an die Amazon-EMR-Konfigurations-API übergeben, werden diese Informationen für Konten mit ausreichenden Berechtigungen angezeigt. Wenn Sie besorgt sind, dass diese Daten anderen Benutzern angezeigt werden könnten, erstellen Sie den Cluster mit einem administrativen Konto und schränken Sie den Zugriff anderer Benutzer (IAM-Benutzer oder Benutzer mit delegierten Anmeldeinformationen) auf die Services im Cluster ein, indem Sie eine Rolle erstellen, die Berechtigungen für den API-Schlüssel `elasticmapreduce:DescribeCluster` ausdrücklich verweigert.

   1. Erstellen Sie eine Konfigurationsdatei namens `hiveConfiguration.json`, die Änderungen an `hive-site.xml` enthält, wie im folgenden Beispiel gezeigt.

       *hostname*Ersetzen Sie durch die DNS-Adresse Ihrer Amazon RDS-Instance, auf der die Datenbank ausgeführt wird, *username* und *password* durch die Anmeldeinformationen für Ihre Datenbank. Weitere Informationen zum Verbinden mit MySQL- und Autora-Datenbank-Instances finden Sie unter [Verbinden mit einer DB-Instance, die die MySQL Database Engine ausführt](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) und [Verbinden mit einem DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html) im *Amazon-RDS-Benutzerhandbuch*. `javax.jdo.option.ConnectionURL` ist die JDBC-Verbindungszeichenfolge für einen JDBC-Metastore. `javax.jdo.option.ConnectionDriverName` ist der Treiberklassenname für einen JDBC-Metastore.

      Die MySQL-JDBC-Treiber werden von Amazon EMR installiert. 

      Die Werteigenschaft darf keine Leerzeichen oder Wagenrückläufe enthalten. Sie sollte in einer Zeile erscheinen.

      ```
      [
          {
            "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. Verweisen Sie bei der Erstellung des Clusters auf die `hiveConfiguration.json` Datei, wie im folgenden AWS CLI Befehl gezeigt. In diesem Befehl ist die Datei lokal gespeichert. Sie können die Datei auch zu Amazon S3 hochladen und dort referenzieren, beispielsweise `s3://DOC-EXAMPLE-BUCKET/hiveConfiguration.json`.
**Anmerkung**  
Linux-Zeilenfortsetzungszeichen (\$1) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

      ```
      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. Stellen Sie eine Verbindung mit dem Primärknoten Ihres Clusters her. 

   Informationen zum Verbinden mit dem Primärknoten finden Sie unter [Verbinden mit dem Primärknoten über SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) im *Verwaltungshandbuch für Amazon EMR*.

1. Erstellen Sie Ihre Hive-Tabellen, indem Sie den Speicherort in Amazon S3 durch Eingabe eines Befehls ähnlich dem folgenden angeben:

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

1. Fügen Sie dem aktiven Cluster Ihr Hive-Skript hinzu.

Ihr Hive-Cluster wird unter Verwendung des Metastores in Amazon RDS ausgeführt. Starten Sie alle zusätzlichen Hive-Cluster, die diesen Metastore nutzen, indem Sie den Metastore-Speicherort angeben. 