

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.

# Tutorial: Arbeiten mit Amazon DynamoDB und Apache Hive
<a name="EMRforDynamoDB.Tutorial"></a>

In diesem Tutorial starten Sie einen Amazon-EMR-Cluster und verwenden Apache Hive zum Verarbeiten von Daten in einer DynamoDB-Tabelle.

*Hive* ist eine Data-Warehouse-Anwendung für Hadoop, mit der Sie Daten aus mehreren Quellen verarbeiten und analysieren können. Hive bietet eine SQL-ähnliche Sprache, *HiveQL*, die es Ihnen ermöglicht, mit lokal im Amazon-EMR-Cluster oder in einer externen Datenquelle (wie Amazon DynamoDB) gespeicherten Daten zu arbeiten.

Weitere Informationen finden Sie im [Hive-Tutorial](https://cwiki.apache.org/confluence/display/Hive/Tutorial).

**Topics**
+ [Bevor Sie beginnen](#EMRforDynamoDB.Tutorial.BeforeYouBegin)
+ [Schritt 1: Erstellen eines Amazon EC2-Schlüsselpaares](EMRforDynamoDB.Tutorial.EC2KeyPair.md)
+ [Schritt 2: Starten eines Amazon-EMR-Clusters](EMRforDynamoDB.Tutorial.LaunchEMRCluster.md)
+ [Schritt 3: Verbinden mit dem Leader-Knoten](EMRforDynamoDB.Tutorial.ConnectToLeaderNode.md)
+ [Schritt 4: Laden von Daten in HDFS](EMRforDynamoDB.Tutorial.LoadDataIntoHDFS.md)
+ [Schritt 5: Kopieren von Daten nach DynamoDB](EMRforDynamoDB.Tutorial.CopyDataToDDB.md)
+ [Schritt 6: Abfragen der Daten in der DynamoDB-Tabelle](EMRforDynamoDB.Tutorial.QueryDataInDynamoDB.md)
+ [Schritt 7: (Optional) Bereinigen](EMRforDynamoDB.Tutorial.CleanUp.md)

## Bevor Sie beginnen
<a name="EMRforDynamoDB.Tutorial.BeforeYouBegin"></a>

Für dieses Tutorial benötigen Sie Folgendes:
+ Ein AWS Konto. Wenn Sie kein Konto haben, finden Sie weitere Informationen unter [Melden Sie sich an für AWS](SettingUp.DynamoWebService.md#SettingUp.DynamoWebService.SignUpForAWS).
+ Einen SSH-Client (Secure Shell). Sie verwenden den SSH-Client, um eine Verbindung mit dem Leader-Knoten des Amazon-EMR-Clusters herzustellen und interaktive Befehle auszuführen. In den meisten Linux-, Unix- und Mac-OS-X-Installationen sind SSH-Clients standardmäßig vorhanden. Windows-Benutzer können den [PuTTY](http://www.chiark.greenend.org.uk/~sgtatham/putty/)-Client, der SSH unterstützt, herunterladen und installieren.

**Nächster Schritt**  
[Schritt 1: Erstellen eines Amazon EC2-Schlüsselpaares](EMRforDynamoDB.Tutorial.EC2KeyPair.md)

# Schritt 1: Erstellen eines Amazon EC2-Schlüsselpaares
<a name="EMRforDynamoDB.Tutorial.EC2KeyPair"></a>

In diesem Schritt erstellen Sie das Amazon-EC2-Schlüsselpaar, das Sie zum Verbinden eines Amazon-EMR-Leader-Knotens und zum Ausführen von Hive-Befehlen benötigen.

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

1. Wählen Sie eine Region (z. B. `US West (Oregon)`) aus. Dies sollte dieselbe Region sein, in der sich auch Ihre DynamoDB-Tabelle befindet.

1. Wählen Sie im Navigationsbereich die Option **Key Pairs** aus.

1. Wählen Sie **Create Key Pair** aus. 

1. Geben Sie in **Key pair name** einen Namen für Ihr Schlüsselpaar ein (z. B. `mykeypair`) und wählen Sie anschließend **Create** aus. 

1. Laden Sie die private Schlüsseldatei herunter. Der Dateiname endet mit `.pem` (z. B. `mykeypair.pem`). Bewahren Sie die Datei mit dem privaten Schlüssel an einem sicheren Ort auf. Sie benötigen die Datei für den Zugriff auf einen Amazon-EMR-Cluster, den Sie mit diesem Schlüsselpaar starten. 
**Wichtig**  
Wenn Sie das Schlüsselpaar verlieren, können Sie keine Verbindung mit dem Leader-Knoten Ihres Amazon-EMR-Clusters herstellen.

   Weitere Informationen über Schlüsselpaare finden Sie unter [Amazon-EC2-Schlüsselpaare](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) im *Amazon-EC2-Benutzerhandbuch*. 

**Nächster Schritt**  
[Schritt 2: Starten eines Amazon-EMR-Clusters](EMRforDynamoDB.Tutorial.LaunchEMRCluster.md)

# Schritt 2: Starten eines Amazon-EMR-Clusters
<a name="EMRforDynamoDB.Tutorial.LaunchEMRCluster"></a>

In diesem Schritt konfigurieren und starten Sie einen Amazon-EMR-Cluster. Hive und ein Speicher-Handler für DynamoDB sind bereits auf dem Cluster installiert.

1. Öffnen Sie die Amazon EMR-Konsole unter [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr/).

1. Wählen Sie **Create Cluster** aus.

1. Führen Sie auf der Seite **Create Cluster - Quick Options** die folgenden Schritte aus:

   1. Geben Sie unter **Cluster name** einen Namen für Ihren Cluster ein (z. B. `My EMR cluster`).

   1. Wählen Sie unter **EC2 key pair** das Schlüsselpaar aus, das Sie zuvor erstellt haben.

   Übernehmen Sie für die anderen Einstellungen die Standardwerte.

1. Wählen Sie **Cluster erstellen**.

Es dauert einige Minuten, bis Ihr Cluster gestartet ist. Sie können den Fortschritt auf der Seite **Cluster-Details** in der Amazon-EMR-Konsole überwachen.

Sobald der Cluster bereit ist, ändert sich der Status in `Waiting`.

## Cluster-Protokolldateien und Amazon S3
<a name="EMRforDynamoDB.Tutorial.LaunchEMRCluster.LogFilesAndS3"></a>

Ein Amazon-EMR-Cluster generiert Protokolldateien, die Informationen zum Cluster-Status und Debugging-Daten enthalten. Die Standardeinstellungen für **Cluster erstellen - Schnelle Optionen** umfassen die Einrichtung der Amazon-EMR-Protokollierung.

Falls noch keiner vorhanden ist, AWS-Managementkonsole erstellt der einen Amazon S3 S3-Bucket. Der Bucket-Name ist`aws-logs-account-id-region`, wo ` account-id` sich Ihre AWS Kontonummer `region` befindet und die Region ist, in der Sie den Cluster gestartet haben (zum Beispiel`aws-logs-123456789012-us-west-2`).

**Anmerkung**  
Sie können die Amazon-S3-Konsole verwenden, um die Protokolldateien anzuzeigen. Weitere Informationen finden Sie unter [Ansehen von Protokolldateien](https://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-manage-view-web-log-files.html) im *Managementleitfaden für Amazon EMR*.

Sie können diesen Bucket noch für andere Zwecke als das Protokollieren verwenden. Beispiel: Sie können den Bucket als Speicherort für die Ablage eines Hive-Skripts oder als Ziel für das Exportieren von Daten aus Amazon DynamoDB nach Amazon S3 verwenden.

**Nächster Schritt**  
[Schritt 3: Verbinden mit dem Leader-Knoten](EMRforDynamoDB.Tutorial.ConnectToLeaderNode.md)

# Schritt 3: Verbinden mit dem Leader-Knoten
<a name="EMRforDynamoDB.Tutorial.ConnectToLeaderNode"></a>

Wenn sich der Status Ihres Amazon-EMR-Clusters in `Waiting` ändert, können Sie über SSH eine Verbindung mit dem Leader-Knoten herstellen und Befehlszeilenoperationen ausführen.

1. Klicken Sie in der Amazon-EMR-Konsole auf den Clusternamen, um den Status anzusehen.

1. Suchen Sie auf der Seite **Clusterdetails** das Feld **öffentliche Leader-DNS**. Hierbei handelt es sich um den öffentlichen DNS-Namen für den Leader-Knoten Ihres Amazon-EMR-Clusters.

1. Klicken Sie rechts neben dem DNS-Namen auf den **SSH**-Link.

1. Befolgen Sie die Anweisungen unter **Verbinden mit dem Leader-Knoten über SSH**.

   Wählen Sie je nach Betriebssystem die Registerkarte **Windows** oder **Mac/Linux** aus und befolgen die Anweisungen zum Herstellen einer Verbindung mit dem Leader-Knoten.

Nachdem Sie eine Verbindung mit dem Leader-Knoten über SSH oder PuTTY hergestellt haben, wird eine Eingabeaufforderung ähnlich der folgenden angezeigt:

```
[hadoop@ip-192-0-2-0 ~]$ 
```

**Nächster Schritt**  
[Schritt 4: Laden von Daten in HDFS](EMRforDynamoDB.Tutorial.LoadDataIntoHDFS.md)

# Schritt 4: Laden von Daten in HDFS
<a name="EMRforDynamoDB.Tutorial.LoadDataIntoHDFS"></a>

In diesem Schritt kopieren Sie eine Datendatei in Hadoop Distributed File System (HDFS) und erstellen dann eine externe Hive-Tabelle, die der Datendatei zugeordnet ist.

**Herunterladen der Beispieldaten**

1. Laden Sie das Beispieldatenarchiv (`features.zip`) herunter:

   ```
   wget https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/features.zip
   ```

1. Extrahieren Sie die Datei `features.txt` aus dem Archiv:

   ```
   unzip features.zip
   ```

1. Zeigen Sie die ersten Zeilen der Datei `features.txt` an:

   ```
   head features.txt
   ```

   Das Ergebnis sollte wie folgt aussehen:

   ```
   1535908|Big Run|Stream|WV|38.6370428|-80.8595469|794
   875609|Constable Hook|Cape|NJ|40.657881|-74.0990309|7
   1217998|Gooseberry Island|Island|RI|41.4534361|-71.3253284|10
   26603|Boone Moore Spring|Spring|AZ|34.0895692|-111.410065|3681
   1506738|Missouri Flat|Flat|WA|46.7634987|-117.0346113|2605
   1181348|Minnow Run|Stream|PA|40.0820178|-79.3800349|1558
   1288759|Hunting Creek|Stream|TN|36.343969|-83.8029682|1024
   533060|Big Charles Bayou|Bay|LA|29.6046517|-91.9828654|0
   829689|Greenwood Creek|Stream|NE|41.596086|-103.0499296|3671
   541692|Button Willow Island|Island|LA|31.9579389|-93.0648847|98
   ```

   Die `features.txt` Datei enthält eine Teilmenge von Daten des Vereinigte Staaten Board on Geographic Names ([http://geonames.usgs). gov/domestic/download](http://geonames.usgs.gov/domestic/download_data.htm)\$1data.htm). Die Felder in jeder Zeile repräsentieren Folgendes:
   + Merkmals-ID (eindeutige Kennung)
   + Name
   + Klasse (See, Wald, Strom usw.)
   + Status
   + Breitengrad (Grad)
   + Längengrad (Grad)
   + Höhe (in Fuß)

1. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

   ```
   hive
   ```

   Die Eingabeaufforderung ändert sich wie folgt: `hive>` 

1. Geben Sie die folgende HiveQL-Anweisung zum Erstellen einer nativen Hive-Tabelle ein:

   ```
   CREATE TABLE hive_features
       (feature_id             BIGINT,
       feature_name            STRING ,
       feature_class           STRING ,
       state_alpha             STRING,
       prim_lat_dec            DOUBLE ,
       prim_long_dec           DOUBLE ,
       elev_in_ft              BIGINT)
       ROW FORMAT DELIMITED
       FIELDS TERMINATED BY '|'
       LINES TERMINATED BY '\n';
   ```

1. Geben Sie die folgende HiveQL-Anweisung zum Laden der Tabelle mit Daten ein:

   ```
   LOAD DATA
   LOCAL
   INPATH './features.txt'
   OVERWRITE
   INTO TABLE hive_features;
   ```

1. Damit haben Sie eine native Hive-Tabelle, die mit Daten aus der Datei `features.txt` gefüllt wurde. Zum Überprüfen geben Sie die folgende HiveQL-Anweisung ein:

   ```
   SELECT state_alpha, COUNT(*)
   FROM hive_features
   GROUP BY state_alpha;
   ```

   Die Ausgabe sollte eine Liste der Bundesstaaten und die Anzahl der geografischen Merkmale in jedem Bundesstaat enthalten.

**Nächster Schritt**  
[Schritt 5: Kopieren von Daten nach DynamoDB](EMRforDynamoDB.Tutorial.CopyDataToDDB.md)

# Schritt 5: Kopieren von Daten nach DynamoDB
<a name="EMRforDynamoDB.Tutorial.CopyDataToDDB"></a>

In diesem Schritt kopieren Sie Daten aus der Hive-Tabelle (`hive_features`) in eine neue Tabelle in DynamoDB.

1. Öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Wählen Sie **Tabelle erstellen** aus.

1. Führen Sie auf der Seite **Create DynamoDB table** die folgenden Schritte aus:

   1. In der **Tabelle**, tippen Sie **Features** ein.

   1. Geben Sie für **Primärer Schlüssel** im Feld **Partitionsschlüssel**, **Id** ein. Legen Sie den Datentyp auf **Number** fest.

      Deaktivieren Sie **Standardeinstellungen verwenden**. Geben Sie für **Provisioned Capacity** Folgendes ein:
      + **Lesekapazitätseinheiten**—`10`
      + **Schreibkapazitätseinheiten**—`10`

   Wählen Sie **Erstellen** aus.

1. Geben Sie an der Hive-Eingabeaufforderung die folgende HiveQL-Anweisung ein: 

   ```
   CREATE EXTERNAL TABLE ddb_features
       (feature_id   BIGINT,
       feature_name  STRING,
       feature_class STRING,
       state_alpha   STRING,
       prim_lat_dec  DOUBLE,
       prim_long_dec DOUBLE,
       elev_in_ft    BIGINT)
   STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
   TBLPROPERTIES(
       "dynamodb.table.name" = "Features",
       "dynamodb.column.mapping"="feature_id:Id,feature_name:Name,feature_class:Class,state_alpha:State,prim_lat_dec:Latitude,prim_long_dec:Longitude,elev_in_ft:Elevation"
   );
   ```

   Sie haben jetzt ein Mapping zwischen Hive und der Tabelle „Funktionen“ in DynamoDB hergestellt.

1. Geben Sie die folgende HiveQL-Anweisung ein, um Daten in DynamoDB zu importieren:

   ```
   INSERT OVERWRITE TABLE ddb_features
   SELECT
       feature_id,
       feature_name,
       feature_class,
       state_alpha,
       prim_lat_dec,
       prim_long_dec,
       elev_in_ft
   FROM hive_features;
   ```

   Hive reicht einen MapReduce Job ein, der von Ihrem Amazon EMR-Cluster bearbeitet wird. Die Verarbeitung des Auftrags kann einige Minuten dauern.

1. Überprüfen Sie, ob die Daten in DynamoDB geladen wurden:

   1. Wählen Sie im Navigationsbereich der DynamoDB-Konsole **Tabellen** aus.

   1. Wählen Sie die Tabelle „Features” und anschließend die Registerkarte **Items** aus, um die Daten anzuzeigen.

**Nächster Schritt**  
[Schritt 6: Abfragen der Daten in der DynamoDB-Tabelle](EMRforDynamoDB.Tutorial.QueryDataInDynamoDB.md)

# Schritt 6: Abfragen der Daten in der DynamoDB-Tabelle
<a name="EMRforDynamoDB.Tutorial.QueryDataInDynamoDB"></a>

In diesem Schritt verwenden Sie HiveQL, um die Tabelle „Funktionen“ in DynamoDB abzufragen. Probieren Sie die folgenden Hive-Abfragen aus:

1. Alle Merkmalstypen (`feature_class`) in alphabetischer Reihenfolge:

   ```
   SELECT DISTINCT feature_class
   FROM ddb_features
   ORDER BY feature_class;
   ```

1. Alle Seen, die mit dem Buchstaben "M" beginnen:

   ```
   SELECT feature_name, state_alpha
   FROM ddb_features
   WHERE feature_class = 'Lake'
   AND feature_name LIKE 'M%'
   ORDER BY feature_name;
   ```

1. Staaten mit mindestens drei Merkmalen, die höher als eine Meile (1,6 km) sind:

   ```
   SELECT state_alpha, feature_class, COUNT(*)
   FROM ddb_features
   WHERE elev_in_ft > 5280
   GROUP by state_alpha, feature_class
   HAVING COUNT(*) >= 3
   ORDER BY state_alpha, feature_class;
   ```

**Nächster Schritt**  
[Schritt 7: (Optional) Bereinigen](EMRforDynamoDB.Tutorial.CleanUp.md)

# Schritt 7: (Optional) Bereinigen
<a name="EMRforDynamoDB.Tutorial.CleanUp"></a>

Nachdem Sie das Tutorial abgeschlossen haben, können Sie mit diesem Abschnitt fortfahren, um mehr über das Arbeiten mit DynamoDB-Daten in Amazon EMR zu erfahren. Sie können Ihren Amazon-EMR-Cluster dabei in Betrieb lassen.

Wenn Sie den Cluster nicht mehr benötigen, sollten Sie ihn beenden und alle zugehörigen Ressourcen entfernen. So vermeiden Sie Gebühren für Ressourcen, die Sie nicht benötigen.

1. Beenden Sie den Amazon-EMR-Cluster:

   1. Öffnen Sie die Amazon EMR-Konsole unter [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr/).

   1. Wählen Sie den Amazon-EMR-Cluster und anschließend **Beenden** aus und bestätigen Sie den Vorgang.

1. Löschen Sie die Tabelle „Funktionen“ in DynamoDB:

   1. Öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

   1. Wählen Sie im Navigationsbereich **Tables** (Tabellen) aus.

   1. Wählen Sie die Tabelle „Funktionen“ aus. Wählen Sie im Menü **Actions** die Option **Delete Table** aus.

1. Löschen Sie den Amazon-S3-Bucket mit den Amazon-EMR-Protokolldateien:

   1. Öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Wählen Sie aus der Liste der Buckets aus`aws-logs- accountID-region`, wo sich *accountID* Ihre AWS Kontonummer *region* befindet und in welcher Region Sie den Cluster gestartet haben.

   1. Wählen Sie im Menü **Action** die Option **Delete** aus.