

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.

# Hive-Anwendungsmerkmale bei früheren AMI-Versionen von Amazon EMR
<a name="emr-3x-hive"></a>

## Protokolldateien
<a name="emr-3x-hive-log-files"></a>

Beim Verwenden der AMI-Versionen 2.x und 3.x von Amazon EMR werden Hive-Protokolle in `/mnt/var/log/apps/` gespeichert. Zur Unterstützung gleichzeitiger Versionen von Hive bestimmt die Hive-Version, die Sie ausführen, den Protokolldateinamen, wie in der folgenden Tabelle dargestellt. 


| Hive-Version | Protokolldateiname | 
| --- | --- | 
| 0.13.1 | hive.log  Ab dieser Version verwendet Amazon EMR den nicht versionierten Dateinamen `hive.log`. Nebenversionen verwenden denselben Protokollspeicherort wie die Hauptversion.   | 
| 0.11.0 | hive\$10110.log   Nebenversionen von Hive 0.11.0, z. B. 0.11.0.1, nutzen denselben Speicherort für ihre Protokolldatei wie Hive 0.11.0.   | 
| 0.8.1 | hive\$1081.log   Nebenversionen von Hive 0.8.1, z. B. Hive 0.8.1.1, nutzen denselben Speicherort für ihre Protokolldatei wie Hive 0.8.1.   | 
| 0.7.1 | hive\$107\$11.log   Nebenversionen von Hive 0.7.1, z. B. Hive 0.7.1.3 und Hive 0.7.1.4, nutzen denselben Speicherort für ihre Protokolldatei wie Hive 0.7.1.    | 
| 0.7 | hive\$107.log | 
| 0.5 | hive\$105.log | 
| 0.4 | hive.log | 

## Split-Eingabe-Funktionen
<a name="emr-3x-hive-split-input"></a>

Verwenden Sie Folgendes zum Implementieren von Split-Eingabe-Funktionen mit Hive-Versionen niedriger als 0.13.1 (Amazon-EMR-AMI-Versionen vor 3.11.0):

```
hive> set hive.input.format=org.apache.hadoop.hive.ql.io.HiveCombineSplitsInputFormat;
hive> set mapred.min.split.size=100000000;
```

Diese Funktionalität wurde mit Hive 0.13.1 eingestellt. Verwenden Sie folgende Einstellung, um dieselbe Funktionalität wie beim Split-Eingabeformat in AMI-Version 3.11.0 von Amazon EMR zu erhalten:

```
set hive.hadoop.supports.splittable.combineinputformat=true;
```

## Thrift-Service-Ports
<a name="emr-3x-hive-thrift-service"></a>

 Thrift ist ein RPC-Framework, das ein kompaktes binäres Serialisierungsformat definiert. Es wird dazu verwendet, Datenstrukturen für spätere Analysen beizubehalten. In der Regel konfiguriert Hive die Server für den Betrieb an folgenden Ports. 


| Hive-Version | Port-Nummer | 
| --- | --- | 
| Hive 0.13.1 | 10000 | 
| Hive 0.11.0 | 10004 | 
| Hive 0.8.1 | 10003 | 
| Hive 0.7.1 | 10002 | 
| Hive 0.7 | 10001 | 
| Hive 0.5 | 10000 | 

 Weitere Informationen über Thrift-Services finden Sie unter [http://wiki.apache.org/thrift/](http://wiki.apache.org/thrift/). 

## Verwenden von Hive zum Wiederherstellen von Partitionen
<a name="emr-3x-hive-recover-partition"></a>

Amazon EMR enthält eine Anweisung in der Hive-Abfragesprache, mit der die Partitionen einer Tabelle aus den Tabellendaten in Amazon S3 wiederhergestellt werden. Im folgenden Beispiel ist diese Anweisung dargestellt. 

```
CREATE EXTERNAL TABLE (json string) raw_impression 
PARTITIONED BY (dt string) 
LOCATION 's3://elastic-mapreduce/samples/hive-ads/tables/impressions';
ALTER TABLE logs RECOVER PARTITIONS;
```

Die Partitionsverzeichnisse und -daten müssen sich den dem in der Tabellendefinition angegebenem Speicherort befinden und dem Hive-Standard entsprechend benannt sein: z. B. `dt=2009-01-01`. 

**Anmerkung**  
Nach der Version Hive 0.13.1 wird diese Funktion nativ mit `msck repair table` unterstützt. Daher wird `recover partitions` nicht unterstützt. [Weitere Informationen finden Sie unter https://cwiki.apache. org/confluence/display/Hive/LanguageManual\$1DDL](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL).

## Übergeben einer Hive-Variable an ein Skript
<a name="emr-3x-hive-pass-variable"></a>

Um eine Variable mit dem an einen Hive-Schritt zu übergeben AWS CLI, geben Sie den folgenden Befehl ein, *myKey* ersetzen Sie ihn durch den Namen Ihres EC2-Schlüsselpaars und *amzn-s3-demo-bucket* ersetzen Sie ihn durch Ihren Bucket-Namen. In diesem Beispiel ist `SAMPLE` ein Variablenwert, dem der Switch `-d` vorangestellt wird. Diese Variable ist im Hive-Skript definiert als: `${SAMPLE}`.

**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 --name "Test cluster" --ami-version 3.9 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type m3.xlarge --instance-count 3 \
--steps Type=Hive,Name="Hive Program",ActionOnFailure=CONTINUE,\
Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/response-time-stats.q,-d,\
INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://amzn-s3-demo-bucket/hive-ads/output/,\
-d,SAMPLE=s3://elasticmapreduce/samples/hive-ads/]
```

## Angeben eines externen Metastore-Speicherorts
<a name="emr-3x-hive-external-metastore"></a>

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-Datenbank mit Amazon RDS.

   Weitere Informationen zum Erstellen einer Amazon-RDS-Datenbank finden Sie unter [Erste Schritte mit Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.html).

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 [Amazon-RDS-Sicherheitsgruppen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) im *Amazon-RDS-Benutzerhandbuch*.

1. Legen Sie die JDBC-Konfigurationswerte in `hive-site.xml` fest:

   1. Erstellen Sie eine `hive-site.xml`-Konfigurationsdatei, die folgende Informationen enthält:

      ```
      <configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mariadb://hostname:3306/hive?createDatabaseIfNotExist=true</value>
          <description>JDBC connect string for a JDBC metastore</description>
        </property>
        <property>
          <name>javax.jdo.option.ConnectionUserName</name>
          <value>hive</value>
          <description>Username to use against metastore database</description>
        </property>
        <property>
          <name>javax.jdo.option.ConnectionPassword</name>
          <value>password</value>
          <description>Password to use against metastore database</description>
        </property>
      </configuration>
      ```

      *hostname*ist die DNS-Adresse der Amazon RDS-Instance, auf der die Datenbank ausgeführt wird. *username*und *password* sind die Anmeldeinformationen für Ihre Datenbank. Weitere Informationen zum Verbinden mit MySQL- und Aurora-Datenbank-Instances finden Sie unter [Herstellen einer Verbindung mit einer DB-Instance auf der MySQL Databank Engine](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html) und [Herstellen von einer Verbindung zu einem Aurora-DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connecting.html) im *Amazon-RDS-Benutzerhandbuch*.

      Die JDBC-Treiber werden von Amazon EMR installiert. 
**Anmerkung**  
Die Werteigenschaft darf keine Leerzeichen oder Wagenrückläufe enthalten. Sie sollte in einer Zeile erscheinen.

   1. Speichern Sie die `hive-site.xml`-Datei in einem Speicherort in Amazon S3, z. B. unter `s3://amzn-s3-demo-bucket/hive-site.xml`.

1. Erstellen Sie einen Cluster, indem Sie den Amazon-S3-Speicherort der benutzerdefinierten Datei `hive-site.xml` angeben.

   Der folgende Beispielbefehl demonstriert einen AWS CLI Befehl, der dies tut.
**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 --name "Test cluster" --ami-version 3.10 \
   --applications Name=Hue Name=Hive Name=Pig \
   --use-default-roles --ec2-attributes KeyName=myKey \
   --instance-type m3.xlarge --instance-count 3 \
   --bootstrap-actions Name="Install Hive Site Configuration",\
   Path="s3://region.elasticmapreduce/libs/hive/hive-script",\
   Args=["--base-path","s3://elasticmapreduce/libs/hive","--install-hive-site",\
   "--hive-site=s3://amzn-s3-demo-bucket/hive-site.xml","--hive-versions","latest"]
   ```

## Mit Hive über JDBC verbinden
<a name="emr-3x-hive-jdbc"></a>

Zum Herstellen einer Verbindung mit Hive über JDBC müssen Sie den JDBC-Treiber herunterladen und einen SQL-Client installieren. Das folgende Beispiel zeigt, wie Sie mithilfe von SQL mithilfe von JDBC eine Verbindung Workbench/J zu Hive herstellen.

**So laden Sie JDBC-Treiber herunter**

1. Laden Sie die entsprechenden Treiber für die Hive-Versionen herunter, auf die Sie zugreifen möchten. Entpacken Sie die Treiber. Die Hive-Version unterscheidet sich je nach dem beim Erstellen eines Amazon-EMR-Clusters ausgewählten AMI.
   + [Hive 0.13.1 JDBC-Treiber: JDBC\$11.0.4.1004.zip https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/ AmazonHive](https://amazon-odbc-jdbc-drivers.s3.amazonaws.com/public/AmazonHiveJDBC_1.0.4.1004.zip)
   + Hive 0.11.0-JDBC-Treiber: [https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0](https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.11.0)
   + Hive 0.8.1-JDBC-Treiber: [https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1](https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc/0.8.1)

1. [Installieren Sie SQL Workbench/J. Weitere Informationen finden Sie unter Installation und Start von SQL Workbench/J im SQL-Handbuch.](http://www.sql-workbench.net/manual/install.html) Workbench/J 

1. Erstellen Sie einen SSH-Tunnel zum Cluster-Master-Knoten. Der Port für die Verbindung unterscheidet sich je nach Hive-Version. Beispielbefehle für `ssh`-Linux-Benutzer und PuTTY-Befehle für Windows-Benutzer finden Sie in den unten stehenden Tabellen.  
**Linux-SSH-Befehle**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-hive.html)  
**Windows-PuTTY-Tunneleinstellungen**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-hive.html)

1. Fügen Sie SQL Workbench den JDBC-Treiber hinzu.

   1. Klicken Sie im Dialogfeld **Select Connection Profile (Verbindungsprofil auswählen)** auf **Manage Drivers (Treiber verwalten)**. 

   1. Wählen Sie das Symbol (leere Seite) **Create a new entry (Neuen Eintrag erstellen)** aus.

   1. Geben Sie in das Feld **Name** **Hive JDBC** ein.

   1. Klicken Sie bei **Library (Bibliothek)** auf das Symbol **Select the JAR file(s) (JAR-Datei(en) auswählen)**.

   1. Wählen Sie JAR-Dateien aus, wie in der folgenden Tabelle gezeigt.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-hive.html)

   1. Wählen Sie im Dialogfeld **Please select one driver (Bitte einen Treiber auswählen)** einen Treiber gemäß der folgenden Tabelle aus und klicken Sie dann auf **OK**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-hive.html)

1. Wenn Sie zum Dialogfeld **Select Connection Profile (Verbindungsprofil auswählen)** zurückkehren, stellen Sie sicher, dass das Dialogfeld **Driver (Treiber)** auf **Hive JDBC** festgelegt ist, und geben Sie die JDBC-Verbindungszeichenfolge im Feld **URL** gemäß der folgenden Tabelle ein.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-hive.html)

   Wenn Ihr Cluster die AMI-Version 3.3.1 oder höher im Dialogfeld **Select Connection Profile (Verbindungsprofil auswählen)** verwendet, geben Sie **hadoop** in das Feld **Username (Benutzername)** ein.