

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.

# AMI-Versionen 2.x und 3.x von Amazon EMR
<a name="emr-release-3x"></a>

**Anmerkung**  
AWS aktualisiert die TLS-Konfiguration für alle AWS API-Endpunkte auf eine Mindestversion von TLS 1.2. Amazon-EMR-Versionen 3.10 und niedriger unterstützen nur TLS-1.0/1.1-Verbindungen. Nach dem 4. Dezember 2023 können Sie mit Amazon EMR 3.10 und niedriger keine Cluster mehr erstellen.  
Wenn Sie Amazon EMR 3.10 oder niedriger verwenden, empfehlen wir Ihnen, Ihre Workloads sofort zu testen und auf die neueste Amazon-EMR-Version zu migrieren. Weitere Informationen erhalten Sie im [AWS -Sicherheitsblog](https://aws.amazon.com/blogs//security/tls-1-2-required-for-aws-endpoints/).

Die Amazon-EMR-Versionen 2.x und 3.x die auch als *AMI-Versionen* bezeichnet werden, stehen für bereits bestehende Lösungen zur Verfügung, die diese aus Kompatibilitätsgründen benötigen. Sie sollten mit diesen Versionen keine neuen Cluster oder Lösungen erstellen. In diesen Versionen fehlen Funktionen, die in neueren Versionen vorhanden sind. Zudem enthalten sie veraltete Anwendungspakete.

Wir empfehlen, dass Sie für das Erstellen von Lösungen die neueste Amazon-EMR-Version verwenden.

Die Unterschiede zwischen den Versionen 2.x und 3.x und den neuesten Amazon-EMR-Versionen sind signifikant. Der Umfang der Unterschiede reicht von der Erstellung und Konfiguration eines Clusters bis hin zur Port- und Verzeichnisstruktur von Anwendungen auf dem Cluster.

Dieser Abschnitt deckt die wichtigsten Amazon-EMR-Unterschiede sowie spezielle Unterschiede bei der Anwendungskonfiguration und-verwaltung ab. Die Angaben sind nicht vollständig. Wenn Sie Cluster mit den Versionen 2.x oder 3.x erstellen und nutzen, stoßen Sie möglicherweise auf Unterschiede, die in diesem Abschnitt nicht aufgeführt sind.

**Topics**
+ [Erstellen eines Clusters mit früheren AMI-Versionen von Amazon EMR](emr-3x-create.md)
+ [Installieren von Anwendungen mit früheren AMI-Versionen von Amazon EMR](emr-3x-install-apps.md)
+ [Anpassen von Cluster- und Anwendungskonfiguration mit früheren AMI-Versionen von Amazon EMR](emr-3x-customizeappconfig.md)
+ [Hive-Anwendungsmerkmale bei früheren AMI-Versionen von Amazon EMR](emr-3x-hive.md)
+ [HBase Anwendungsspezifikationen für frühere AMI-Versionen von Amazon EMR](emr-3x-hbase.md)
+ [Pig-Anwendungsmerkmale bei früheren AMI-Versionen von Amazon EMR](emr-3x-pig.md)
+ [Spark-Anwendungsmerkmale bei früheren AMI-Versionen von Amazon EMR](emr-3x-spark.md)
+ [Unterschiede zwischen dem DistCp S3-Hilfsprogramm und früheren AMI-Versionen von Amazon EMR](emr-3x-s3distcp.md)

# Erstellen eines Clusters mit früheren AMI-Versionen von Amazon EMR
<a name="emr-3x-create"></a>

Die Versionen 2.x und 3.x von Amazon EMR werden als AMI-Versionen bezeichnet. Ab Amazon-EMR-Version 4.0.0 und höher wird auf Versionen mit der Versionsbezeichnung verwiesen, beispielsweise `emr-5.11.0`. Diese Änderung ist am deutlichsten, wenn Sie einen Cluster programmgesteuert mithilfe von AWS CLI oder erstellen.

Wenn Sie den verwenden AWS CLI , um einen Cluster mit einer AMI-Release-Version zu erstellen, verwenden Sie die `--ami-version` Option, zum Beispiel`--ami-version 3.11.0`. Viele Optionen, Features und Anwendungen, die mit Amazon EMR 4.0.0 und höher eingeführt wurden, sind nicht verfügbar, wenn Sie `--ami-version` angeben. Weitere Informationen finden Sie unter [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html) in der *AWS CLI -Befehlsreferenz*. 

Der folgende AWS CLI Beispielbefehl startet einen Cluster mit einer AMI-Version.

**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.11.0 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,\
InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=2,\
InstanceType=m3.xlarge --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop,\
Name="Configuring infinite JVM reuse",Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"]
```

Programmtechnisch verwenden alle Amazon-EMR-Versionen die Aktion `RunJobFlowRequest` in der EMR-API zum Erstellen von Clustern. Der folgende Java-Beispielcode erstellt einen Cluster mit der AMI-Version 3.11.0.

```
RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("AmiVersion Cluster")
			.withAmiVersion("3.11.0")
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myKeyPair")
				.withInstanceCount(1)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m3.xlarge")
				.withSlaveInstanceType("m3.xlarge");
```

Der folgende `RunJobFlowRequest`-Aufruf verwendet stattdessen eine Versionsbezeichnung:

```
RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("ReleaseLabel Cluster")
			.withReleaseLabel("emr-7.12.0")
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myKeyPair")
				.withInstanceCount(1)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m3.xlarge")
				.withSlaveInstanceType("m3.xlarge");
```

## Konfigurieren der Cluster-Größe
<a name="emr-3x-cluster-size"></a>

Wenn Ihr Cluster ausgeführt wird, bestimmt Hadoop die Anzahl der zum Verarbeiten der Daten erforderlichen Mapper- und Reducer-Tasks. Große Cluster sollten für eine bessere Ressourcennutzung und für kürzere Verarbeitungszeiten über mehr Tasks verfügen. In der Regel behält ein EMR-Cluster seine Größe während seiner gesamten Lebensdauer. Sie legen die Anzahl der Tasks beim Erstellen des Clusters fest. Wenn Sie die Größe eines laufenden Clusters ändern, können Sie die Verarbeitung während der Cluster-Ausführung anpassen. Statt mit einer festen Anzahl von Tasks zu arbeiten, können Sie die Anzahl der Tasks während der Nutzungsdauer des Clusters anpassen. Es gibt zwei Konfigurationsoptionen, mit denen die ideale Anzahl von Tasks festgelegt werden kann:
+ `mapred.map.tasksperslot`
+ `mapred.reduce.tasksperslot`

Sie können beide Optionen über die `mapred-conf.xml`-Datei festlegen. Wenn Sie einen Auftrag an den Cluster senden, überprüft der Auftrags-Client die Gesamtanzahl der aktuell im gesamten Cluster verfügbaren Map- und Reduce-Slots. Der Auftrags-Client verwendet die folgenden Gleichungen, um die Anzahl der Tasks festzulegen: 
+ `mapred.map.tasks` =` mapred.map.tasksperslot` \$1 Map-Slots im Cluster
+ `mapred.reduce.tasks` = `mapred.reduce.tasksperslot` \$1 Reduce-Slots im Cluster

Wenn die Anzahl der Tasks nicht konfiguriert ist, liest der Auftrags-Client nur den `tasksperslot`-Parameter aus. Sie können die Anzahl der Tasks jederzeit überschreiben – entweder über eine Bootstrap-Aktion für alle Cluster, oder einzeln pro Auftrag durch das Hinzufügen eines Schritts zum Ändern der Konfiguration. 

Amazon EMR kann mit Ausfällen von Aufgabenknoten umgehen und führt den Cluster auch dann weiter aus, wenn ein Aufgabenknoten nicht mehr verfügbar ist. Amazon EMR stellt automatisch zusätzliche Aufgabenknoten als Ersatz für ausgefallene Knoten bereit. 

Sie können für jeden Cluster-Schritt eine andere Anzahl von Aufgabenknoten nutzen. Sie können außerdem in einem ausgeführten Cluster einen Schritt hinzufügen, um die Anzahl der Aufgabenknoten zu ändern. Da alle Schritte standardmäßig sequenziell ausgeführt werden, können Sie die Anzahl der ausgeführten Aufgabenknoten für einen Schritt festlegen. 

# Installieren von Anwendungen mit früheren AMI-Versionen von Amazon EMR
<a name="emr-3x-install-apps"></a>

Bei Verwendung einer AMI-Version werden Anwendungen auf verschiedene Arten installiert, z. B. mithilfe des `NewSupportedProducts` Parameters für die [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html)Aktion, mithilfe von Bootstrap-Aktionen und mithilfe der [Step-Aktion](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_Step.html).

# Anpassen von Cluster- und Anwendungskonfiguration mit früheren AMI-Versionen von Amazon EMR
<a name="emr-3x-customizeappconfig"></a>

Mit Amazon-EMR-Version 4.0.0 wurde eine vereinfachte Methode zur Konfiguration von Anwendungen mithilfe von Konfigurationsklassifizierungen eingeführt. Weitere Informationen finden Sie unter [Anwendungen konfigurieren](emr-configure-apps.md). Wenn Sie eine AMI-Version verwenden, konfigurieren Sie Anwendungen mit Bootstrap-Aktionen und Argumenten, die Sie übergeben. Beispielsweise legen die `configure-hadoop`- und `configure-daemons`-Bootstrap-Aktionen Hadoop- und YARN-spezifische Umgebungseigenschaften wie `--namenode-heap-size` fest. In neueren Versionen werden diese mit den Konfigurationsklassifizierungen `hadoop-env` und `yarn-env` konfiguriert. Bootstrap-Aktionen, die allgemeine Konfigurationen durchführen, finden Sie im [emr-bootstrap-actions Repository auf](https://github.com/awslabs/emr-bootstrap-actions) Github.

Die folgenden Tabellen zeigen die Zuordnung von Bootstrap-Aktionen zu Konfigurationsklassifizierungen in neueren Amazon-EMR-Versionen.


**Hadoop**  

| Dateiname der betroffenen Anwendung | Bootstrap-Aktion für AMI-Version | Konfigurationsklassifizierung | 
| --- | --- | --- | 
| core-site.xml  | configure-hadoop -c  | core-site | 
| log4j.properties  | configure-hadoop -l  | hadoop-log4j | 
| hdfs-site.xml  | configure-hadoop -s  | hdfs-site  | 
| – | – | hdfs-encryption-zones | 
| mapred-site.xml  | configure-hadoop -m  | mapred-site | 
| yarn-site.xml  | configure-hadoop -y  | yarn-site | 
| httpfs-site.xml  | configure-hadoop -t  | httpfs-site | 
| capacity-scheduler.xml  | configure-hadoop -z  | capacity-scheduler | 
| yarn-env.sh  | configure-daemons --resourcemanager-opts | yarn-env | 


**Hive**  

| Dateiname der betroffenen Anwendung | Bootstrap-Aktion für AMI-Version | Konfigurationsklassifizierung | 
| --- | --- | --- | 
| hive-env.sh | – | hive-env | 
| hive-site.xml | hive-script --install-hive-site \$1\$1MY\$1HIVE\$1SITE\$1FILE\$1 | hive-site | 
| hive-exec-log4j.properties | – | hive-exec-log4j | 
| hive-log4j.properties | – | hive-log4j | 


**EMRFS**  

| Dateiname der betroffenen Anwendung | Bootstrap-Aktion für AMI-Version | Konfigurationsklassifizierung | 
| --- | --- | --- | 
| emrfs-site.xml | configure-hadoop -e | emrfs-site | 
| – | s3get -s s3://custom-provider.jar -d /usr/share/aws/emr/auxlib/ | emrfs-site (mit neuer Einstellung fs.s3.cse.encryptionMaterialsProvider.uri) | 

Eine Liste aller Klassifizierungen finden Sie unter [Anwendungen konfigurieren](emr-configure-apps.md).

## Variablen für die Anwendungsumgebung
<a name="emr-3x-appenv"></a>

Bei Verwendung einer AMI-Version wird ein `hadoop-user-env.sh`-Skript zusammen mit der Bootstrap-Aktion `configure-daemons` zur Konfiguration der Hadoop-Umgebung eingesetzt. Das Skript umfasst die folgenden Aktionen:

```
#!/bin/bash 
export HADOOP_USER_CLASSPATH_FIRST=true; 
echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh
```

In Amazon-EMR-Version 4.x gehen Sie genauso vor und verwenden die Konfigurationsklassifizierung `hadoop-env`, wie im folgenden Beispiel gezeigt:

```
[ 
      { 
         "Classification":"hadoop-env",
         "Properties":{ 

         },
         "Configurations":[ 
            { 
               "Classification":"export",
               "Properties":{ 
                  "HADOOP_USER_CLASSPATH_FIRST":"true",
                  "HADOOP_CLASSPATH":"/path/to/my.jar"
               }
            }
         ]
      }
   ]
```

Ein weiteres Beispiel verdeutlicht, dass die Verwendung von `configure-daemons` und die Übergabe von `--namenode-heap-size=2048` und `--namenode-opts=-XX:GCTimeRatio=19` den folgenden Konfigurationsklassifizierungen entspricht.

```
[ 
      { 
         "Classification":"hadoop-env",
         "Properties":{ 

         },
         "Configurations":[ 
            { 
               "Classification":"export",
               "Properties":{ 
                  "HADOOP_DATANODE_HEAPSIZE":  "2048",
           	"HADOOP_NAMENODE_OPTS":  "-XX:GCTimeRatio=19"
               }
            }
         ]
      }
   ]
```

Andere Umgebungsvariablen der Anwendung werden nicht länger in `/home/hadoop/.bashrc` definiert. Stattdessen werden sie hauptsächlich in `/etc/default`-Dateien nach Komponente oder Anwendung eingerichtet, z. B. `/etc/default/hadoop`. Wrapper-Skripte, die von der Anwendung `/usr/bin/` installiert werden, RPMs können auch zusätzliche Umgebungsvariablen setzen, bevor sie das eigentliche Bin-Skript einbeziehen.

## Service-Ports
<a name="emr-3x-serviceports"></a>

Bei Verwendung einer AMI-Version nutzen einige Services benutzerdefinierte Ports.


**Änderungen der Port-Einstellungen**  

| Einstellung | AMI-Version 3.x | Open-Source-Standard | 
| --- | --- | --- | 
| fs.default.name | hdfs://emrDeterminedIP:9000 | Standard (hdfs: //:8020) emrDeterminedIP  | 
| dfs.datanode.address | 0.0.0.0:9200 | Standard (0.0.0.0:50010)  | 
| dfs.datanode.http.address | 0.0.0.0:9102 | Standard (0.0.0.0:50075)  | 
| dfs.datanode.https.address | 0.0.0.0:9402 | Standard (0.0.0.0:50475) | 
| dfs.datanode.ipc.address | 0.0.0.0:9201 | Standard (0.0.0.0:50020) | 
| dfs.http.address | 0.0.0.0:9101 | Standard (0.0.0.0:50070)  | 
| dfs.https.address | 0.0.0.0:9202 | Standard (0.0.0.0:50470)  | 
| dfs.secondary.http.address | 0.0.0.0:9104 | Standard (0.0.0.0:50090) | 
| yarn.nodemanager.address | 0.0.0.0:9103 | Standard (\$1\$1yarn.nodemanager.hostname\$1:0)  | 
| yarn.nodemanager.localizer.address  | 0.0.0.0:9033 | Standard (\$1\$1yarn.nodemanager.hostname\$1:8040) | 
| yarn.nodemanager.webapp.address | 0.0.0.0:9035 | Standard (\$1\$1yarn.nodemanager.hostname\$1:8042) | 
| yarn.resourcemanager.address | emrDeterminedIPStandard (hdfs: //:8020) ----sep----:9022 | Standard (\$1\$1yarn.resourcemanager.hostname\$1:8032) | 
| yarn.resourcemanager.admin.address | emrDeterminedIP:9022 ----sep----:9025 | Standard (\$1\$1yarn.resourcemanager.hostname\$1:8033) | 
| yarn.resourcemanager.resource-tracker.address | emrDeterminedIP:9025 ----sep----:9023 | Standard (\$1\$1yarn.resourcemanager.hostname\$1:8031) | 
| yarn.resourcemanager.scheduler.address | emrDeterminedIP:9023 ----sep----:9024 | Standard (\$1\$1yarn.resourcemanager.hostname\$1:8030) | 
| yarn.resourcemanager.webapp.address | 0.0.0.0:9026  | Standard (\$1\$1yarn.resourcemanager.hostname\$1:8088) | 
| yarn.web-proxy.address | emrDeterminedIP:9024 ----sep----:9046  | Standard (no-value)  | 
| yarn.resourcemanager.hostname | 0.0.0.0 (Standard)  | emrDeterminedIP | 

**Anmerkung**  
Das *emrDeterminedIP* ist eine IP-Adresse, die von Amazon EMR generiert wird.

## Benutzer
<a name="emr-3x-users"></a>

Bei Verwendung einer AMI-Version führt der Benutzer `hadoop` alle Prozesse aus. Zudem gehören ihm alle Dateien. Ab Amazon-EMR-Version 4.0.0 und höher sind Benutzer auf Anwendungs- und Komponentenebene vorhanden.

## Installationssequenz, installierte Artefakte und Speicherorte für die Protokolldatei
<a name="emr-3x-directories"></a>

Bei Verwendung einer AMI-Version werden Anwendungs-Artefakte und deren Konfigurationsverzeichnisse im Verzeichnis `/home/hadoop/application` installiert. Wenn Sie beispielsweise das Verzeichnis Hive installiert hatten, lautete das Verzeichnis `/home/hadoop/hive`. Ab Amazon-EMR-Version 4.0.0 und höher werden Anwendungs-Artefakte im Verzeichnis `/usr/lib/application` installiert. Bei Verwendung einer AMI-Version werden Protokolldateien an unterschiedlichen Speicherorten gespeichert. In der folgenden Tabelle sind diese Speicherorte aufgeführt.


**Änderungen der Protokollspeicherorte in Amazon S3**  

| Daemon oder Anwendung | Speicherort des Verzeichnisses | 
| --- | --- | 
| instance-state | node/ /instance-state/ instance-id | 
| hadoop-hdfs-namenode | Dämonen/instance-id/.log hadoop-hadoop-namenode | 
| hadoop-hdfs-datanode | Daemonen/instance-id/hadoop-hadoop-datanode.log | 
| Hadoop-Garn ResourceManager () | instance-idDämonen//yarn-hadoop-resourcemanager | 
| hadoop-yarn (Proxy-Server) | Dämonen/instance-id/yarn-hadoop-proxyserver | 
| mapred-historyserver | Dämonen/instance-id/ | 
| httpfs | instance-idDämonen/ /httpfs.log | 
| hive-server | knoten/ instance-id /hive-server/hive-server.log | 
| hive-metastore | knoten/ /apps/hive.log instance-id | 
| Hive CLI | knoten/ /apps/hive.log instance-id | 
| Benutzer- und Container-Protokolle der YARN Anwendungen | task-attempts/ | 
| Mahout | – | 
| Pig | – | 
| spark-historyserver | – | 
| Verlaufsdateien des MapReduce-Auftrags | jobs/ | 

## Command Runner
<a name="emr-differences-commandrunner"></a>

Bei Verwendung einer AMI-Version werden viele Skripts oder Programme wie `/home/hadoop/contrib/streaming/hadoop-streaming.jar` nicht in der Shell-Anmeldepfadumgebung abgelegt. Deshalb müssen Sie den vollständigen Pfad angeben, wenn Sie eine JAR-Datei wie command-runner.jar oder script-runner.jar zur Skriptausführung einsetzen. `command-runner.jar` befindet sich im AMI. Sie müssen also anders als bei `script-runner.jar` nicht die vollständige URI kennen. 

## Replikationsfaktor
<a name="emr-3x-replication"></a>

Mit dem Replikationsfaktor können Sie konfigurieren, wann eine Hadoop-JVM gestartet werden soll. Sie können für jede Aufgabe eine neue Hadoop-JVM starten, was für eine bessere Aufgabenisolierung sorgt, oder Sie können die Aufgaben gemeinsam nutzen, wodurch der JVMs Framework-Overhead geringer wird. Wenn Sie viele kleine Dateien verarbeiten, ist es durchaus sinnvoll, die JVM oft wieder zu verwenden, damit sich die Kosten für den Start amortisieren. Wenn jedoch die einzelnen Aufgaben viel Zeit in Anspruch nehmen oder Prozesse eine große Datenmenge verwenden, können Sie entscheiden, die JVM nicht erneut zu verwenden, um sicherzustellen, dass der gesamte JVM-Speicher für nachfolgende Aufgaben freigegeben wird. Bei Verwendung einer AMI-Version können Sie den Replikationsfaktor mit der Bootstrap-Aktion `configure-hadoop` anpassen, um die `mapred.job.reuse.jvm.num.tasks`-Eigenschaft festzulegen. 

Das folgende Beispiel zeigt die Einrichtung eines JVM-Wiederverwendungsfaktors für die unbegrenzte Wiederverwendung einer JVM.

**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.11.0 \
--applications Name=Hue Name=Hive Name=Pig \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge \
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge \
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop,\
Name="Configuring infinite JVM reuse",Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"]
```

# 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.

# HBase Anwendungsspezifikationen für frühere AMI-Versionen von Amazon EMR
<a name="emr-3x-hbase"></a>

## Unterstützte Versionen HBase
<a name="emr-3x-hbase-versions"></a>


| HBase Version | AMI-Version | AWS CLI Konfigurationsparameter | HBase Versionsdetails | 
| --- | --- | --- | --- | 
| [0.94.18](https://svn.apache.org/repos/asf/hbase/branches/0.94/CHANGES.txt) | 3.1.0 und höher |  `--ami-version 3.1` `--ami-version 3.2` `--ami-version 3.3` `--applications Name=HBase`  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-hbase.html)  | 
| [0.94.7](https://svn.apache.org/repos/asf/hbase/branches/0.94/CHANGES.txt) | 3.0-3.0.4 |  `--ami-version 3.0` `--applications Name=HBase`  | 
| [0.92](https://svn.apache.org/repos/asf/hbase/branches/0.92/CHANGES.txt) | 2.2 und höher |  `--ami-version 2.2 or later` `--applications Name=HBase`  | 

## HBase Voraussetzungen für den Cluster
<a name="emr-3x-hbase-prerequisites"></a>

Ein Cluster, der mit den Amazon EMR AMI-Versionen 2.x und 3.x erstellt wurde, sollte die folgenden Anforderungen erfüllen für. HBase
+ Das AWS CLI (optional) — Um mit der HBase Befehlszeile zu interagieren, laden Sie die neueste Version von herunter und installieren Sie sie. AWS CLI Weitere Informationen finden Sie unter [Installieren der AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) im *AWS Command Line Interface -Benutzerhandbuch*.
+ Mindestens zwei Instances (optional) – Auf dem Hauptknoten des Clusters werden der HBase-Master-Server und Zookeeper und auf den Aufgabenknoten die HBase-Regionsserver ausgeführt. Um eine optimale Leistung zu erzielen, sollten HBase-Cluster auf mindestens zwei EC2-Instances ausgeführt werden. Zu Testzwecken können Sie sie jedoch auch HBase auf einem einzelnen Knoten ausführen. 
+ Cluster mit langer Laufzeit — läuft HBase nur auf Clustern mit langer Laufzeit. Standardmäßig werden von der Befehlszeilenschnittstelle (CLI) und der Amazon-EMR-Konsole lang laufende Cluster erstellt. 
+ Ein Amazon-EC2-Schlüsselpaar (empfohlen) – Zur Verwendung des Netzwerkprotokolls Secure Shell (SSH) für die Verbindung mit dem Hauptknoten und für die Ausführung von HBase-Shell-Befehlen müssen Sie beim Erstellen des Clusters ein Amazon-EC2-Schlüsselpaar verwenden. 
+ Die richtigen AMI- und Hadoop-Versionen — HBase Cluster werden derzeit nur auf Hadoop 20.205 oder höher unterstützt. 
+ Ganglia (optional) — Um HBase Leistungsmetriken zu überwachen, installieren Sie Ganglia, wenn Sie den Cluster erstellen. 
+ Ein Amazon S3 S3-Bucket für Protokolle (optional) — Die Protokolle für HBase sind auf dem Master-Knoten verfügbar. Wenn Sie möchten, dass diese Protokolle nach Amazon S3 kopiert werden, geben Sie beim Erstellen des Clusters einen S3-Bucket für den Empfang der Protokolldateien an. 

## Erstellen eines Clusters mit HBase
<a name="emr-3x-hbase-launch"></a>

In der folgenden Tabelle sind Optionen aufgeführt, die verfügbar sind, wenn Sie die Konsole verwenden, um einen Cluster mit HBase einer Amazon EMR AMI-Release-Version zu erstellen.


| Feld | Action | 
| --- | --- | 
| Restore from backup (Wiederherstellen mithilfe der Sicherung) | Geben Sie an, ob der HBase Cluster mit in Amazon S3 gespeicherten Daten vorab geladen werden soll. | 
| Backup location (Speicherort der Sicherung) | Geben Sie den URI an, in dem die Sicherung in Amazon S3 gespeichert ist, von der die Wiederherstellung erfolgen soll.  | 
| Backup version (Sicherungsversion) | Geben Sie optional den Versionsnamen der zu verwendenden Sicherung unter Backup location (Speicherort der Sicherung) an. Wenn Sie dieses Feld leer lassen, verwendet Amazon EMR das neueste Backup am Backup-Speicherort, um den neuen HBase Cluster zu füllen.  | 
| Schedule regular backups (Regelmäßige Sicherungen planen) | Geben Sie an, ob automatisch inkrementelle Sicherungen eingeplant werden sollen. Die erste Sicherung ist ein vollständiges Backup, um eine Baseline für künftige inkrementelle Sicherungen zu erstellen. | 
| Consistent backup (Konsistente Sicherung) | Geben Sie an, ob die Sicherungen konsistent sein sollen. Bei einer konsistenten Sicherung werden die Schreibvorgänge während der anfänglichen Sicherungsstufe, der knotenübergreifenden Synchronisierung, angehalten. Alle auf diese Weise angehaltenen Schreibvorgänge werden in eine Warteschlange gestellt und nach Abschluss der Synchronisierung fortgesetzt. | 
| Backup frequency (Sicherungshäufigkeit) | Die Anzahl der days/hours/minutes zwischen den geplanten Backups. | 
| Backup location (Speicherort der Sicherung) | Der Amazon-S3-URI, in dem die Sicherungen gespeichert werden. Der Backup-Speicherort für jeden HBase Cluster sollte unterschiedlich sein, um sicherzustellen, dass die differenziellen Backups korrekt bleiben.  | 
| Backup start time (Startzeit der Sicherung) | Geben Sie an, wann die erste Sicherung durchgeführt werden soll. Sie können für dieses Feld now angeben. Dann wird die erste Sicherung gestartet, sobald der Cluster ausgeführt wird. Oder geben Sie ein Datum und eine Uhrzeit im [ISO-Format](http://www.w3.org/TR/NOTE-datetime) ein. Beispielsweise würde 2012-06-15T20:00Z die Startzeit auf 15. Juni 2012 um 20:00 Uhr UTC festlegen.  | 

Mit dem folgenden AWS CLI Beispielbefehl wird ein Cluster mit HBase und anderen Anwendungen gestartet:

**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.3 \
               --applications Name=Hue Name=Hive Name=Pig Name=HBase \
               --use-default-roles --ec2-attributes KeyName=myKey \
               --instance-type c1.xlarge --instance-count 3 --termination-protected
```

Nachdem die Verbindung zwischen Hive und HBase Clustern hergestellt wurde (wie im vorherigen Verfahren gezeigt), können Sie auf die im HBase Cluster gespeicherten Daten zugreifen, indem Sie eine externe Tabelle in Hive erstellen. 

Wenn das folgende Beispiel über die Hive-Eingabeaufforderung ausgeführt wird, wird eine externe Tabelle erstellt, die auf Daten verweist, die in einer HBase Tabelle mit dem Namen gespeichert sind. `inputTable` Anschließend können Sie `inputTable` in Hive-Anweisungen referenzieren, um im Cluster gespeicherte Daten abzufragen und zu ändern. HBase 

**Anmerkung**  
Im folgenden Beispiel wird **protobuf-java-2.4.0a.jar** in AMI 2.3.3 verwendet. Sie sollten das Beispiel jedoch an Ihre Version anpassen. Um zu prüfen, welche Version des Protocol Buffer-JAR Sie haben, führen Sie den folgenden Befehl an der Hive-Eingabeaufforderung aus: `! ls /home/hadoop/lib;`. 

```
add jar lib/emr-metrics-1.0.jar ;
               add jar lib/protobuf-java-2.4.0a.jar ;
               
               set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com ;
               
               create external table inputTable (key string, value string)
                    stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
                     with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1")
                     tblproperties ("hbase.table.name" = "t1");
               
               select count(*) from inputTable ;
```

## Konfiguration anpassen HBase
<a name="emr-3x-hbase-customize"></a>

Obwohl die Standardeinstellungen für die meisten Anwendungen funktionieren sollten, haben Sie die Flexibilität, Ihre HBase Konfigurationseinstellungen zu ändern. Führen Sie hierzu eines der beiden Bootstrap-Aktionsskripts aus: 
+ **configure-hbase-daemons**— Konfiguriert die Eigenschaften der Master-, Regionalserver- und Zookeeper-Daemons. Zu diesen Eigenschaften gehören die Heap-Größe und Optionen, die beim Start des Daemons an die Java Virtual Machine (JVM) übergeben werden. HBase Sie definieren diese Eigenschaften als Argumente in der Bootstrap-Aktion. Diese Bootstrap-Aktion ändert die Konfigurationsdatei/home/hadoop/conf/hbase-user-env.sh auf dem Cluster. HBase 
+ **configure-hbase** — Konfiguriert HBase standortspezifische Einstellungen wie den Port, an den der HBase Master binden soll, und die maximale Häufigkeit, mit der der Client-CLI-Client eine Aktion wiederholen soll. Sie können diese one-by-one als Argumente in der Bootstrap-Aktion festlegen oder den Speicherort einer XML-Konfigurationsdatei in Amazon S3 angeben. Diese Bootstrap-Aktion ändert die Konfigurationsdatei/home/hadoop/conf/hbase-site.xml auf dem Cluster. HBase 

**Anmerkung**  
Diese Skripts können, wie andere Bootstrap-Aktionen, nur ausgeführt werden, wenn der Cluster erstellt wird. Sie können sie nicht verwenden, um die Konfiguration eines HBase Clusters zu ändern, der gerade läuft. 

Wenn Sie die Aktionen **configure-hbase** oder **configure-hbase-daemons**bootstrap ausführen, überschreiben die von Ihnen angegebenen Werte die Standardwerte. Alle Werte, die Sie nicht explizit angeben, erhalten die Standardwerte. 

Die Konfiguration HBase mit diesen Bootstrap-Aktionen entspricht der Verwendung von Bootstrap-Aktionen in Amazon EMR zur Konfiguration von Hadoop-Einstellungen und Hadoop-Daemon-Eigenschaften. Der Unterschied besteht darin, dass HBase es keine Speicheroptionen pro Prozess gibt. Stattdessen werden die Speicheroptionen mithilfe des `--daemon-opts` Arguments festgelegt, wobei *daemon* das Argument durch den Namen des zu konfigurierenden Daemons ersetzt wird. 

### Daemons konfigurieren HBase
<a name="emr-3x-hbase-configure-daemons"></a>

 Amazon EMR bietet eine Bootstrap-Aktion`s3://region.elasticmapreduce/bootstrap-actions/configure-hbase-daemons`, mit der Sie die Konfiguration von HBase Daemons ändern können. Dabei *region* handelt es sich um die Region, in der Sie Ihren Cluster starten. HBase 

Um HBase Daemons mit dem zu konfigurieren AWS CLI, fügen Sie beim Starten des Clusters die `configure-hbase-daemons` Bootstrap-Aktion hinzu, um einen oder mehrere Daemons zu konfigurieren. HBase Sie können die folgenden Eigenschaften festlegen: 


| Property (Eigenschaft) | Description (Beschreibung) | 
| --- | --- | 
| hbase-master-opts | Optionen, die steuern, wie die JVM den Master-Daemon ausführt. Wenn diese Optionen definiert sind, werden die HBASE\$1MASTER\$1OPTS-Standardvariablen damit überschrieben.  | 
| regionserver-opts | Optionen, die steuern, wie die JVM den Regionsserver-Daemon ausführt. Wenn diese Optionen definiert sind, werden die HBASE\$1REGIONSERVER\$1OPTS-Standardvariablen damit überschrieben. | 
| zookeeper-opts | Optionen, die steuern, wie die JVM den Zookeeper-Daemon ausführt. Wenn diese Optionen definiert sind, werden die HBASE\$1ZOOKEEPER\$1OPTS-Standardvariablen damit überschrieben.  | 

[Weitere Informationen zu diesen Optionen finden Sie in der Dokumentation unter hbase-env.sh.](https://hbase.apache.org/book.html#hbase.env.sh) HBase 

Eine Bootstrap-Aktion zum Konfigurieren von Werten für `zookeeper-opts` und `hbase-master-opts` wird im folgenden Beispiel dargestellt.

**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.3 \
--applications Name=Hue Name=Hive Name=Pig Name=HBase \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type c1.xlarge --instance-count 3 --termination-protected \
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-daemons,\
Args=["--hbase-zookeeper-opts=-Xmx1024m -XX:GCTimeRatio=19","--hbase-master-opts=-Xmx2048m","--hbase-regionserver-opts=-Xmx4096m"]
```

### Konfigurieren Sie HBase die Site-Einstellungen
<a name="emr-3x-hbase-configure-site"></a>

Amazon EMR bietet eine Bootstrap-Aktion`s3://elasticmapreduce/bootstrap-actions/configure-hbase`, mit der Sie die Konfiguration ändern können. HBase Sie können Konfigurationswerte one-by-one als Argumente in der Bootstrap-Aktion festlegen oder den Speicherort einer XML-Konfigurationsdatei in Amazon S3 angeben. Das Festlegen von Konfigurationswerten one-by-one ist nützlich, wenn Sie nur einige Konfigurationseinstellungen festlegen müssen. Sie mit einer XML-Datei zu definieren, ist hilfreich, wenn Sie viele Änderungen vornehmen müssen oder Ihre Konfigurationseinstellungen für die Wiederverwendung speichern möchten. 

**Anmerkung**  
Sie können dem Amazon S3 S3-Bucket-Namen ein Regionspräfix voranstellen`s3://region.elasticmapreduce/bootstrap-actions/configure-hbase`, z. B. wo *region* sich die Region befindet, in der Sie Ihren HBase Cluster starten. 

Diese Bootstrap-Aktion ändert die `/home/hadoop/conf/hbase-site.xml` Konfigurationsdatei auf dem HBase Cluster. Die Bootstrap-Aktion kann nur ausgeführt werden, wenn der HBase Cluster gestartet wird.

Weitere Informationen zu den HBase Site-Einstellungen, die Sie konfigurieren können, finden Sie in der HBase Dokumentation unter [Standardkonfiguration](http://hbase.apache.org/book.html#config.files). 

Legen Sie die `configure-hbase` Bootstrap-Aktion fest, wenn Sie den HBase Cluster starten, und geben Sie die `hbase-site.xml` zu ändernden Werte an.

**Um individuelle HBase Site-Einstellungen mit dem zu spezifizieren AWS CLI**
+ Um die `hbase.hregion.max.filesize` Einstellung zu ändern, geben Sie den folgenden Befehl ein und *myKey* ersetzen Sie ihn durch den Namen Ihres Amazon EC2 EC2-Schlüsselpaars.
**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.3 \
  --applications Name=Hue Name=Hive Name=Pig Name=HBase \
  --use-default-roles --ec2-attributes KeyName=myKey \
  --instance-type c1.xlarge --instance-count 3 --termination-protected \
  --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","hbase.hregion.max.filesize=52428800"]
  ```

**Um HBase Site-Einstellungen mit einer XML-Datei anzugeben, verwenden Sie AWS CLI**

1. Erstellen Sie eine benutzerdefinierte Version von `hbase-site.xml`. Die benutzerdefinierte Datei muss eine gültige XML-Datei sein. Um das Risiko von Fehlern zu verringern, beginnen Sie mit der Standardkopie von`hbase-site.xml`, die sich auf dem Amazon HBase EMR-Masterknoten unter befindet`/home/hadoop/conf/hbase-site.xml`, und bearbeiten Sie eine Kopie dieser Datei, anstatt eine Datei von Grund auf neu zu erstellen. Sie können Ihrer neuen Datei einen neuen Namen geben oder den Dateinamen `hbase-site.xml` belassen. 

1. Laden Sie die benutzerdefinierte Datei `hbase-site.xml` in einen Amazon-S3-Bucket hoch. Es sollten die Berechtigungen so eingerichtet sein, dass das AWS Konto, das den Cluster startet, auf die Datei zugreifen kann. Wenn das AWS Konto, das den Cluster startet, auch den Amazon S3 S3-Bucket besitzt, hat es Zugriff. 

1. Legen Sie die Bootstrap-Aktion **configure-hbase** fest, wenn Sie den HBase Cluster starten, und geben Sie den Speicherort Ihrer benutzerdefinierten Datei an. `hbase-site.xml` Im folgenden Beispiel werden die Werte für die HBase Site-Konfiguration auf die in der Datei angegebenen Werte festgelegt. `s3://amzn-s3-demo-bucket/my-hbase-site.xml` 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 den Namen Ihres Amazon S3 S3-Buckets.
**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.3 \
           --applications Name=Hue Name=Hive Name=Pig Name=HBase \
           --use-default-roles --ec2-attributes KeyName=myKey \
           --instance-type c1.xlarge --instance-count 3 --termination-protected \
           --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["--site-config-file","s3://amzn-s3-demo-bucket/config.xml"]
   ```

   Wenn Sie mehr als eine Option angeben, um den HBase Vorgang anzupassen, müssen Sie jedem Schlüssel-Wert-Paar einen `-s` Optionsschalter voranstellen, wie im folgenden Beispiel gezeigt:

   ```
          --bootstrap-actions s3://elasticmapreduce/bootstrap-actions/configure-hbase,Args=["-s","zookeeper.session.timeout=60000"]
   ```

Wenn der Proxy eingerichtet und die SSH-Verbindung geöffnet ist, können Sie die HBase Benutzeroberfläche anzeigen, indem Sie ein Browserfenster mit http: //:60010/master-status öffnen*master-public-dns-name*, in dem sich die öffentliche DNS-Adresse des Master-Knotens *master-public-dns-name* im Cluster befindet. HBase 

Sie können die aktuellen HBase Protokolle anzeigen, indem Sie SSH verwenden, um eine Verbindung zum Master-Knoten herzustellen, und zum Verzeichnis navigieren. `mnt/var/log/hbase` Diese Protokolle sind nicht verfügbar, nachdem der Cluster beendet wurde, es sei denn, Sie aktivieren beim Starten des Clusters die Protokollierung nach Amazon S3.

## Sichern und wiederherstellen HBase
<a name="emr-3x-hbase-backup-restore"></a>

Amazon EMR bietet die Möglichkeit, Ihre HBase Daten entweder manuell oder nach einem automatisierten Zeitplan auf Amazon S3 zu sichern. Sie können sowohl vollständige als auch inkrementelle Sicherungen durchführen. Nachdem Sie eine gesicherte Version der HBase Daten erstellt haben, können Sie diese Version in einem Cluster wiederherstellen. HBase Sie können die Wiederherstellung auf einem HBase Cluster durchführen, der gerade ausgeführt wird, oder einen neuen Cluster starten, der bereits mit gesicherten Daten gefüllt ist. 

Führt während des Backup-Vorgangs HBase weiterhin Schreibbefehle aus. Dadurch wird zwar sichergestellt, dass Ihr Cluster während der Sicherung verfügbar bleibt, es besteht aber das Risiko von Inkonsistenzen zwischen den Daten, die gesichert werden, und den Schreibvorgängen, die parallel ausgeführt werden. Um die möglicherweise auftretenden Inkonsistenzen zu verstehen, müssen Sie berücksichtigen, dass Schreibvorgänge auf die Knoten im Cluster HBase verteilt werden. Wenn ein Schreibvorgang erfolgt, nachdem ein bestimmter Knoten abgefragt wurde, werden diese Daten nicht in das Sicherungsarchiv aufgenommen. Möglicherweise stellen Sie sogar fest, dass frühere Schreibvorgänge in den HBase Cluster (die an einen Knoten gesendet wurden, der bereits abgefragt wurde) möglicherweise nicht im Backup-Archiv enthalten sind, während spätere Schreibvorgänge (die an einen Knoten gesendet wurden, bevor dieser abgerufen wurde) enthalten sind. 

Wenn ein konsistentes Backup erforderlich ist, müssen Sie die Schreibvorgänge HBase während des ersten Teils des Backup-Vorgangs, d. h. der knotenübergreifenden Synchronisation, unterbrechen. Sie tun dies, indem Sie beim Anfordern einer Sicherung den Parameter `--consistent` angeben. Mit diesem Parameter werden die Schreibvorgänge während dieses Zeitraums in eine Warteschlage gestellt und ausgeführt, sobald die Synchronisierung abgeschlossen ist. Sie können auch regelmäßige Sicherungen einplanen. Dadurch werden Inkonsistenzen, die im Laufe der Zeit entstehen, aufgelöst, da die Daten, die bei einer Sicherung nicht berücksichtigt wurden, im folgenden Vorgang gesichert werden. 

Wenn Sie HBase Daten sichern, sollten Sie für jeden Cluster ein anderes Backup-Verzeichnis angeben. Eine einfache Möglichkeit dafür ist die Verwendung der Cluster-Kennung als Bestandteil des für das Sicherungsverzeichnis angegebenen Pfads. Beispiel, `s3://amzn-s3-demo-bucket/backups/j-3AEXXXXXX16F2`. Dadurch wird sichergestellt, dass alle future inkrementellen Backups auf den richtigen HBase Cluster verweisen. 

Wenn Sie bereit sind, alte Sicherungsdateien zu löschen, die nicht mehr benötigt werden, empfehlen wir Ihnen, zunächst eine vollständige Sicherung Ihrer HBase Daten zu erstellen. Auf diese Weise wird sichergestellt, dass alle Daten erhalten bleiben. Außerdem bietet Ihnen dies eine Baseline für zukünftige inkrementelle Sicherungen. Nachdem die vollständige Sicherung abgeschlossen ist, können Sie zum Sicherungsverzeichnis navigieren und die alten Sicherungsdateien manuell löschen. 

Der HBase Sicherungsvorgang verwendet S3 DistCp für den Kopiervorgang, der bestimmte Einschränkungen in Bezug auf den Speicherplatz für temporäre Dateien aufweist. 

### Sicherung und Wiederherstellung HBase mithilfe der Konsole
<a name="emr-3x-hbase-backup-restore-console"></a>

Die Konsole bietet die Möglichkeit, einen neuen Cluster zu starten und ihn mit Daten aus einem früheren HBase Backup zu füllen. Sie bietet Ihnen auch die Möglichkeit, regelmäßige inkrementelle Backups von HBase Daten zu planen. Über die CLI stehen zusätzliche Sicherungs- und Wiederherstellungsfunktion zur Verfügung, z. B. können Daten auf einem bereits ausgeführten Cluster wiederhergestellt, manuelle Sicherungen durchgeführt und automatisierte vollständige Sicherungen terminiert werden.

**Um mithilfe der Konsole einen neuen Cluster mit archivierten HBase Daten zu füllen**

1. Navigieren Sie zur neuen Amazon-EMR-Konsole und wählen Sie in der Seitennavigation die Option **Zur alten Konsole wechseln** aus. Weitere Informationen darüber, was Sie erwartet, wenn Sie zur alten Konsole wechseln, finden Sie unter [Verwenden der alten Konsole](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

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

1. Wählen Sie im Abschnitt **Softwarekonfiguration** für **Zusätzliche Anwendungen** die Option **Konfigurieren **HBase**und hinzufügen** aus.

1. Klicken Sie auf das Dialogfeld **Add Application (Anwendung hinzufügen)** und aktivieren Sie das Kontrollkästchen **Restore From Backup (Wiederherstellen mithilfe der Sicherung)**. 

1. Geben Sie **Backup Backup-Speicherort** den Speicherort des Backups an, das in den neuen HBase Cluster geladen werden soll. Dies sollte eine Amazon-S3-URL im Format `s3://amzn-s3-demo-bucket/backups/` sein. 

1. Für **Backup Version (Sicherungsversion)** haben Sie durch Angabe eines Werts die Möglichkeit, den Namen einer zu ladenden Sicherungsversion anzugeben. Wenn Sie keinen Wert für **Backupversion** (Sicherungsversion) angeben, lädt Amazon EMR die letzte Sicherung in das angegebene Verzeichnis. 

1. Wählen Sie **Add (Hinzufügen)** und fahren Sie fort, um den Cluster mit den anderen Optionen wie gewünscht zu erstellen.

**Um automatische HBase Datensicherungen mithilfe der Konsole zu planen**

1. Wählen Sie im Abschnitt **Softwarekonfiguration** für **Zusätzliche Anwendungen** die Option **Konfigurieren **HBase**und hinzufügen** aus.

1. Wählen Sie **Schedule Regular Backups (Regelmäßige Sicherungen planen)**.

1. Geben Sie an, ob die Sicherungen konsistent sein sollen. Bei einer konsistenten Sicherung werden die Schreibvorgänge während der anfänglichen Sicherungsstufe, der knotenübergreifenden Synchronisierung, angehalten. Alle auf diese Weise angehaltenen Schreibvorgänge werden in eine Warteschlange gestellt und nach Abschluss der Synchronisierung fortgesetzt. 

1. Legen Sie fest, wie oft Sicherungen durchgeführt werden sollen, indem Sie eine Zahl für **Backup Frequency (Sicherungshäufigkeit)** eingeben, und wählen Sie **Days (Tage)**, **Hours (Stunden)** oder **Minutes (Minuten)** aus. Bei der ersten automatischen Sicherung handelt es sich um eine vollständige Sicherung. Danach speichert Amazon EMR inkrementelle Backups basierend auf dem von Ihnen festgelegten Zeitplan. 

1. Geben Sie den Speicherort in Amazon S3 an, in dem die Sicherungen gespeichert werden sollen. Jeder HBase Cluster sollte an einem separaten Speicherort in Amazon S3 gesichert werden, um sicherzustellen, dass inkrementelle Backups korrekt berechnet werden. 

1. Geben Sie an, wann die erste Sicherung erfolgen soll, indem Sie einen Wert für **Backup Start Time (Startzeit der Sicherung)** eingeben. Sie können für dieses Feld `now` angeben. Dann wird die erste Sicherung gestartet, sobald der Cluster ausgeführt wird. Oder geben Sie ein Datum und eine Uhrzeit im [ISO-Format](http://www.w3.org/TR/NOTE-datetime) ein. Beispielsweise würde 2013-09-26T20:00Z die Startzeit auf 26. September 2013 um 20:00 Uhr UTC festlegen. 

1. Wählen Sie **Hinzufügen** aus.

1. Fahren Sie mit der Erstellung des Clusters je nach Bedarf mit den anderen Optionen fort.

## Überwachen Sie HBase mit CloudWatch
<a name="emr-3x-hbase-cloudwatch"></a>

Amazon EMR meldet drei Messwerte CloudWatch , anhand derer Sie Ihre HBase Backups überwachen können. Diese Messwerte werden in Intervallen von fünf Minuten aktualisiert und kostenlos zur Verfügung gestellt. CloudWatch 


| Metrik | Description | 
| --- | --- | 
| HBaseBackupFailed |  Gibt an, ob die letzte Sicherung fehlgeschlagen ist. Sie ist standardmäßig auf 0 gesetzt und wird in 1 geändert, wenn der vorhergehende Sicherungsversuch fehlgeschlagen ist. Diese Metrik wird nur für HBase Cluster gemeldet. Anwendungsfall: HBase Backups überwachen Einheiten: *Anzahl*  | 
| HBaseMostRecentBackupDuration |  Dauer, bis die vorherige Sicherung abgeschlossen ist. Diese Metrik wird unabhängig davon erstellt, ob die letzte Sicherung erfolgreich war oder fehlgeschlagen ist. Während die Sicherung ausgeführt wird, gibt die Metrik die Anzahl der Minuten seit dem Start der Sicherung zurück. Diese Metrik wird nur für HBase Cluster gemeldet. Anwendungsfall: HBase Backups überwachen Einheiten: *Minuten*  | 
| HBaseTimeSinceLastSuccessfulBackup |  Die Anzahl der Minuten, die nach dem Start des letzten erfolgreichen HBase Backups auf Ihrem Cluster vergangen sind. Diese Metrik wird nur für HBase Cluster gemeldet. Anwendungsfall: HBase Backups überwachen Einheiten: *Minuten*  | 

## Konfiguriere Ganglia für HBase
<a name="emr-3x-ganglia-for-hbase"></a>

Sie konfigurieren Ganglia für die HBase Verwendung der **configure-hbase-for-ganglia**Bootstrap-Aktion. Diese Bootstrap-Aktion ist so konfiguriert, dass Metriken HBase in Ganglia veröffentlicht werden. 

Sie müssen Ganglia konfigurieren HBase , wenn Sie den Cluster starten. Ganglia Reporting kann nicht zu einem laufenden Cluster hinzugefügt werden. 

Ganglia speichert Protokolldateien auch auf dem Server unter `/mnt/var/log/ganglia/rrds`. Wenn Sie Ihren Cluster so konfiguriert haben, dass Protokolldateien dauerhaft in einem Amazon-S3-Bucket gespeichert werden, werden die Ganglia-Protokolldateien auch dort dauerhaft abgelegt. 

Um einen Cluster mit Ganglia for zu starten HBase, verwenden Sie die **configure-hbase-for-ganglia**Bootstrap-Aktion, wie im folgenden Beispiel gezeigt.

**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.3 \
--applications Name=Hue Name=Hive Name=Pig Name=HBase Name=Ganglia \
--use-default-roles --ec2-attributes KeyName=myKey \
--instance-type c1.xlarge --instance-count 3 --termination-protected \
--bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hbase-for-ganglia
```

Nachdem der Cluster gestartet wurde, für den Ganglia konfiguriert ist, können Sie auf die Ganglia-Grafiken und -Berichte über die Benutzeroberfläche auf dem Master-Knoten zugreifen. 

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

## Unterstützte Pig-Versionen
<a name="emr-3x-Pig_SupportedVersions"></a>

Welche Pig-Version Sie zu Ihrem Cluster hinzufügen können, hängt von der verwendeten Amazon-EMR-AMI-Version und der Hadoop-Version ab. Die folgende Tabelle zeigt, welche AMI- und Hadoop-Versionen mit den verschiedenen Pig-Versionen kompatibel sind. Wir empfehlen die Verwendung der neuesten Pig-Version, um die Vorteile der Leistungsverbesserungen und neuen Funktionen zu nutzen. 

Wenn Sie die API zur Installation von Pig verwenden, wird die Standardversion verwendet, sofern Sie nicht `--pig-versions` als Argument für den Schritt angeben, der Pig während des Aufrufs von in den Cluster lädt. [RunJobFlow](https://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html) 


| Pig-Version | AMI-Version | Konfigurationsparameter | Details zur Pig-Version | 
| --- | --- | --- | --- | 
| <a name="pig12"></a>0.12.0[Versionshinweise](http://pig.apache.org/releases.html#14+October%2C+2013%3A+release+0.12.0+available)[Dokumentation](http://pig.apache.org/docs/r0.12.0/) | 3.1.0 und höher |  `--ami-version 3.1` `--ami-version 3.2` `--ami-version 3.3`  |  Implementiert die Unterstützung der folgenden Elemente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/emr/latest/ReleaseGuide/emr-3x-pig.html)  | 
| <a name="pig1111"></a>0.11.1.1[Versionshinweise](http://pig.apache.org/releases.html#1+April%2C+2013%3A+release+0.11.1+available)[Dokumentation](http://pig.apache.org/docs/r0.11.1/) | 2.2 und höher |  `--pig-versions 0.11.1.1` `--ami-version 2.2`  |  Verbessert die Leistung des LOAD-Befehls PigStorage , wenn sich die Eingabe in Amazon S3 befindet.  | 
| <a name="pig0111"></a>0.11.1[Versionshinweise](http://pig.apache.org/releases.html#1+April%2C+2013%3A+release+0.11.1+available)[Dokumentation](http://pig.apache.org/docs/r0.11.1/) | 2.2 und höher |  `--pig-versions 0.11.1` `--ami-version 2.2`  |  Integriert die Unterstützung für JDK 7, Hadoop 2, benutzerdefinierte Groovy-Funktionen, SchemaTuple Optimierung, neue Operatoren und mehr. Weitere Informationen finden Sie im [Veränderungsprotokoll für Pig 0.11.1](http://svn.apache.org/repos/asf/pig/tags/release-0.11.1/CHANGES.txt).  | 
| <a name="pig0922"></a>0.9.2.2[Versionshinweise](http://pig.apache.org/releases.html#22+January%2C+2012%3A+release+0.9.2+available)[Dokumentation](http://pig.apache.org/docs/r0.9.2/index.html) | 2.2 und höher |  `--pig-versions 0.9.2.2` `--ami-version 2.2`  |  Implementiert die Unterstützung von Hadoop 1.0.3.  | 
| <a name="pig0921"></a>0.9.2.1[Versionshinweise](http://pig.apache.org/releases.html#22+January%2C+2012%3A+release+0.9.2+available)[Dokumentation](http://pig.apache.org/docs/r0.9.2/index.html) | 2.2 und höher |  `--pig-versions 0.9.2.1` `--ami-version 2.2`  |  Implementiert die Unterstützung von MapR.  | 
| <a name="pig092"></a>0.9.2[Versionshinweise](http://pig.apache.org/releases.html#22+January%2C+2012%3A+release+0.9.2+available)[Dokumentation](http://pig.apache.org/docs/r0.9.2/index.html) | 2.2 und höher |  `--pig-versions 0.9.2` `--ami-version 2.2`  |  Umfasst mehrere Leistungsverbesserungen und Fehlerkorrekturen. Die vollständigen Informationen zu den Änderungen mit Pig 0.9.2 finden Sie im [Veränderungsprotokoll für Pig 0.9.2](http://svn.apache.org/repos/asf/pig/tags/release-0.9.2/CHANGES.txt).  | 
| <a name="pig091"></a>0.9.1[Versionshinweise](http://pig.apache.org/releases.html#5+October%2C+2011%3A+release+0.9.1+available)[Dokumentation](http://pig.apache.org/docs/r0.9.1/) | 2.0 |  `--pig-versions 0.9.1` `--ami-version 2.0`  | 
| <a name="pig06"></a>0.6[Versionshinweise](http://pig.apache.org/releases.html#1+March%2C+2010%3A+release+0.6.0+available) | 1,0 |  `--pig-versions 0.6` `--ami-version 1.0`  | 
| <a name="pig03"></a>0.3[Versionshinweise](http://pig.apache.org/releases.html#25+June%2C+2009%3A+release+0.3.0+available) | 1,0 |  `--pig-versions 0.3` `--ami-version 1.0`  | 

## Details zur Pig-Version
<a name="emr-pig-version-details"></a>

Amazon EMR unterstützt bestimmte Pig-Versionen, auf die möglicherweise zusätzliche Amazon-EMR-Patches angewendet wurden. Sie können konfigurieren, welche Pig-Version auf den Amazon-EMR-Clustern ausgeführt wird. Weitere Information dazu finden Sie unter [Apache Pig](emr-pig.md). In den folgenden Abschnitten werden die verschiedenen Pig-Versionen und die auf die in Amazon EMR geladenen Versionen angewendeten Patches beschrieben. 

### Pig-Patches
<a name="EnvironmentConfig_AMIPigPatches"></a>

Dieser Abschnitt beschreibt die benutzerdefinierten Patches, die auf die in Amazon EMR verfügbaren Pig-Versionen anwendet werden.

#### Pig-0.11.1.1-Patches
<a name="EnvironmentConfig_AMIPigPatches-0.11.1.1"></a>

Die Amazon EMR-Version von Pig 0.11.1.1 ist eine Wartungsversion, die die Leistung des LOAD-Befehls verbessert, PigStorage wenn sich die Eingabe in Amazon S3 befindet.

#### Pig 0.11.1-Patches
<a name="EnvironmentConfig_AMIPigPatches-0.11.1"></a>

Die Amazon-EMR-Version von Pig 0.11.1 enthält alle Aktualisierungen der Apache Software Foundation und die kumulativen Amazon-EMR-Patches aus Pig-Version 0.9.2.2. Es gibt jedoch keine neuen Amazon-EMR-spezifischen Patches in Pig 0.11.1.

#### Pig-0.9.2-Patches
<a name="EnvironmentConfig_AMIPigPatches-0.9.2"></a>

Apache Pig 0.9.2 ist eine Wartungsversion von Pig. Das Amazon-EMR-Team hat die folgenden Patches auf die Amazon-EMR-Version von Pig 0.9.2 angewendet. 


| Patch | Description | 
| --- | --- | 
|  PIG-1429  |   Fügt den Datentyp Boolean als Pig-Datentyp als primären Datentyp zu Pig hinzu. [Weitere Informationen finden Sie auf https://issues.apache. org/jira/browse/PIG-1429](https://issues.apache.org/jira/browse/PIG-1429).   **Status:** Ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** 0.10   | 
|  PIG-1824  |   Unterstützung von Import-Module in Jython UDF. [Weitere Informationen finden Sie unter https://issues.apache. org/jira/browse/PIG-1824](https://issues.apache.org/jira/browse/PIG-1824).   **Status:** Ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** 0.10   | 
|  PIG-2010  |   Das Paket ist JARs im verteilten Cache registriert. Weitere Informationen finden Sie [unter https://issues.apache. org/jira/browse/PIG-2010.](https://issues.apache.org/jira/browse/PIG-2010)   **Status:** Ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** 0.11   | 
|  PIG-2456  |   \$1/.pigbootup-Datei hinzugefügt, über die Benutzer Standard-Pig-Anweisungen angeben können. Weitere Informationen finden Sie unter [https://issues.apache. org/jira/browse/PIG-2456](https://issues.apache.org/jira/browse/PIG-2456).   **Status:** Ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** 0.11   | 
|  PIG-2623  |   Support der Verwendung von Amazon S3 S3-Pfaden zur Registrierung UDFs. Weitere Informationen finden Sie [unter https://issues.apache. org/jira/browse/PIG-2623](https://issues.apache.org/jira/browse/PIG-2623).   **Status:** Ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** 0.10, 0.11   | 

#### Pig-0.9.1-Patches
<a name="EnvironmentConfig_AMIPigPatches-0.9.1"></a>

Das Amazon-EMR-Team hat die folgenden Patches auf die Amazon-EMR-Version von Pig 0.9.1 angewendet. 


| Patch | Description | 
| --- | --- | 
|  Unterstützung für JAR-Dateien und Pig-Skripts in DFS  |   Fügt Unterstützung zur Ausführung von Skripts und zur Registrierung von JAR-Dateien, die in HDFS, Amazon S3 oder anderen verteilten Dateisystemen gespeichert sind, hinzu. [Weitere Informationen finden Sie unter https://issues.apache. org/jira/browse/PIG-1505](https://issues.apache.org/jira/browse/PIG-1505).   **Status:** Ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** 0.8.0   | 
|  Unterstützung mehrerer Dateisysteme in Pig  |   Fügt Unterstützung für Pig-Skripts zum Lesen von Daten aus einem Dateisystem und Schreiben in einem anderen hinzu. [Weitere Informationen finden Sie unter https://issues.apache. org/jira/browse/PIG-1564](https://issues.apache.org/jira/browse/PIG-1564).   **Status:** Nicht ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** –   | 
|  Fügen Sie Piggybank Datetime und Zeichenfolge hinzu UDFs  |   Fügen Sie Datetime und Zeichenfolge hinzu, um benutzerdefinierte Pig-Skripte UDFs zu unterstützen. Weitere Informationen finden Sie unter [https://issues.apache. org/jira/browse/PIG-1565](https://issues.apache.org/jira/browse/PIG-1565).   **Status:** Nicht ausgeführt   **Fixed in Apache Pig Version: (In Apache Pig-Version behoben:)** –   | 

## Interaktive Pig-Cluster und Batch-Pig-Cluster
<a name="emr-3x-pig-interactive-batch"></a>

Amazon EMR ermöglicht die Ausführung von Pig-Skripts in zwei Modi:
+ Interactive
+ Batch

Wenn Sie einen Cluster mit langer Laufzeit über die Konsole oder die starten AWS CLI, können Sie **ssh** sich als Hadoop-Benutzer mit dem Master-Knoten verbinden und die Grunt-Shell verwenden, um Ihre Pig-Skripte interaktiv zu entwickeln und auszuführen. Durch die interaktive Verwendung von Pig können Sie Pig-Skripts einfacher überarbeiten als im Batch-Modus. Nachdem Sie das Pig-Skript im interaktiven Modus erfolgreich überarbeitet haben, können Sie das Skript in Amazon S3 hochladen und den Batch-Modus nutzen, um das Skript in der Produktionsumgebung auszuführen. Sie können außerdem interaktiv Pig-Befehle an einen aktuell ausgeführten Cluster senden, um Daten bei Bedarf zu analysieren und zu transformieren.

Im Batch-Modus laden Sie in einem einzigen Schritt Ihr Pig-Skript in Amazon S3 hoch und senden gleichzeitig den Auftrag an den Cluster. Pig-Schritte können an lang- oder kurzlebige Cluster und an Übergangs-Cluster gesendet werden.

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

## Spark im interaktiven Modus oder im Batch-Modus verwenden
<a name="emr-3x-spark-interactive-batch"></a>

Amazon EMR ermöglicht die Ausführung von Spark-Anwendungen in zwei Modi: 
+ Interactive
+ Batch

Wenn Sie einen Cluster mit langer Laufzeit über die Konsole oder die starten AWS CLI, können Sie als Hadoop-Benutzer über SSH eine Verbindung zum Master-Knoten herstellen und die Spark-Shell verwenden, um Ihre Spark-Anwendungen interaktiv zu entwickeln und auszuführen. Mit der interaktiven Verwendung von Spark ist das Entwickeln von Prototypen für Spark-Anwendungen und das Testen dieser Anwendungen einfacher als in einer Batch-Umgebung. Wenn Sie die Spark-Anwendung im interaktiven Modus erfolgreich überarbeitet haben, können Sie die JAR-Anwendungsdatei oder das Python-Programm im lokalen Dateisystem des Hauptknotens des Clusters in Amazon S3 ablegen. Anschließend können Sie die Anwendung als Batch-Workflow senden.

Laden Sie im Batch-Modus das Spark-Skript in Amazon S3 oder ins Dateisystem des lokalen Hauptknotens hoch und senden Sie dann die Arbeit als Schritt an den Cluster. Spark-Schritte können an lang- oder kurzlebige Cluster gesendet werden.

## Erstellen eines Clusters mit installiertem Spark
<a name="emr-3x-spark-install"></a>

**So starten Sie einen Cluster mit installiertem Spark über die Console**

1. Navigieren Sie zur neuen Amazon-EMR-Konsole und wählen Sie in der Seitennavigation die Option **Zur alten Konsole wechseln** aus. Weitere Informationen darüber, was Sie erwartet, wenn Sie zur alten Konsole wechseln, finden Sie unter [Verwenden der alten Konsole](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in).

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

1. Wählen Sie für **Software Configuration (Softwarekonfiguration)** die benötigte AMI-Version aus.

1.  Wählen Sie unter **Applications to be installed (Zu installierende Anwendungen)** in der Liste **Spark** und anschließend **Configure and add (Konfigurieren und hinzufügen)** aus.

1. Sie können Argumente hinzufügen, um die Spark-Konfiguration bei Bedarf zu ändern. Weitere Informationen finden Sie unter [Konfigurieren von Spark](#emr-3x-spark-configure). Wählen Sie **Hinzufügen** aus.

1.  Wählen Sie nach Bedarf weitere Optionen und anschließend **Create cluster (Cluster erstellen)** aus.

Das folgende Beispiel zeigt, wie Sie einen Cluster mit Spark mittels Java erstellen:

```
AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials);
SupportedProductConfig sparkConfig = new SupportedProductConfig()
			.withName("Spark");

RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("Spark Cluster")
			.withAmiVersion("3.11.0")
			.withNewSupportedProducts(sparkConfig)
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myKeyName")
				.withInstanceCount(1)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m3.xlarge")
				.withSlaveInstanceType("m3.xlarge")
			);			
RunJobFlowResult result = emr.runJobFlow(request);
```

## Konfigurieren von Spark
<a name="emr-3x-spark-configure"></a>

[Sie konfigurieren Spark, wenn Sie einen Cluster erstellen, indem Sie die Bootstrap-Aktion ausführen, die sich im Repository auf Github befindet. awslabs/emr-bootstrap-actions/spark](https://github.com/awslabs/emr-bootstrap-actions/tree/master/spark) Informationen zu den Argumenten, die von der Bootstrap-Aktion akzeptiert werden, finden Sie in der [README-Datei](https://github.com/aws-samples/emr-bootstrap-actions/blob/master/spark/examples/README.md) dieses Repositorys. Die Bootstrap-Aktion konfiguriert Eigenschaften in der Datei `$SPARK_CONF_DIR/spark-defaults.conf`. Weitere Informationen zu den Einstellungen finden Sie im Thema zur Spark-Konfiguration in der Spark-Dokumentation. Sie können „latest“ in der folgenden URL durch die Nummer der Spark-Version ersetzen, die Sie installieren, beispielsweise `2.2.0` [http://spark.apache.org/docs/latest/configuration.html](http://spark.apache.org/docs/latest/configuration.html).

Ebenso ist es möglich, Spark dynamisch bei jeder Anwendungsübermittlung zu konfigurieren. Eine Einstellung, mit der die Ressourcenzuordnung für einen Executor automatisch erhöht wird, ist über die Konfigurationsdatei `spark` verfügbar. Weitere Informationen finden Sie unter [Überschreiben der standardmäßigen Spark-Konfigurationseinstellungen](#emr-3x-spark-dynamic-configuration).

### Ändern von Spark-Standardeinstellungen
<a name="emr-3x-spark-default-settings"></a>

Das folgende Beispiel zeigt, wie Sie einen Cluster mit der AWS CLI erstellen, bei dem `spark.executor.memory` auf 2G gesetzt ist.

**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 "Spark cluster" --ami-version 3.11.0 \
--applications Name=Spark, Args=[-d,spark.executor.memory=2G] --ec2-attributes KeyName=myKey \
--instance-type m3.xlarge --instance-count 3 --use-default-roles
```

### Aufträge an Spark übergeben
<a name="emr-3x-spark-submit-work"></a>

Verwenden Sie einen Schritt, um das Skript `spark-submit` auf Ihrem EMR-Cluster auszuführen und Arbeit an den Cluster zu senden. Fügen Sie den Schritt mit der folgenden `addJobFlowSteps` Methode hinzu: [AmazonElasticMapReduceClient](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticmapreduce/AmazonElasticMapReduceClient.html)

```
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials);
StepFactory stepFactory = new StepFactory();
AddJobFlowStepsRequest req = new AddJobFlowStepsRequest();
req.withJobFlowId("j-1K48XXXXXXHCB");

List<StepConfig> stepConfigs = new ArrayList<StepConfig>();
		
StepConfig sparkStep = new StepConfig()
	.withName("Spark Step")
	.withActionOnFailure("CONTINUE")
	.withHadoopJarStep(stepFactory.newScriptRunnerStep("/home/hadoop/spark/bin/spark-submit","--class","org.apache.spark.examples.SparkPi","/home/hadoop/spark/lib/spark-examples-1.3.1-hadoop2.4.0.jar","10"));

stepConfigs.add(sparkStep);
req.withSteps(stepConfigs);
AddJobFlowStepsResult result = emr.addJobFlowSteps(req);
```

### Überschreiben der standardmäßigen Spark-Konfigurationseinstellungen
<a name="emr-3x-spark-dynamic-configuration"></a>

Vielleicht möchten Sie die standardmäßigen Spark-Konfigurationswerte je nach Anwendung überschreiben. Sie können dies tun, wenn Sie Anwendungen mithilfe eines Schritts senden, wodurch im Wesentlichen Optionen an `spark-submit` übergeben werden. Sie möchten z. B. den Speicher ändern, der einem Executor-Prozess zugeordnet wurde. Dazu modifizieren Sie `spark.executor.memory`. Sie können den Schalter `--executor-memory` mit einem Argument wie dem folgenden angeben:

```
/home/hadoop/spark/bin/spark-submit --executor-memory 1g --class org.apache.spark.examples.SparkPi /home/hadoop/spark/lib/spark-examples*.jar 10
```

Auf ähnliche Weise können Sie `--executor-cores` und `--driver-memory` optimieren. In einem Schritt würden Sie die folgenden Argumente bereitstellen:

```
--executor-memory 1g --class org.apache.spark.examples.SparkPi /home/hadoop/spark/lib/spark-examples*.jar 10
```

Sie können mithilfe der Option `--conf` auch Einstellungen optimieren, die eventuell über keinen integrierten Schalter verfügen. Weitere Informationen zu anderen optimierbaren Einstellungen finden Sie im Thema [Dynamisches Laden von Spark-Eigenschaften](https://spark.apache.org/docs/latest/configuration.html#dynamically-loading-spark-properties) in der Apache-Spark-Dokumentation.

# Unterschiede zwischen dem DistCp S3-Hilfsprogramm und früheren AMI-Versionen von Amazon EMR
<a name="emr-3x-s3distcp"></a>

## In Amazon EMR unterstützte DistCp S3-Versionen
<a name="emr-s3distcp-verisons"></a>

Die folgenden DistCp S3-Versionen werden in Amazon EMR AMI-Versionen unterstützt. DistCpS3-Versionen nach 1.0.7 befinden sich direkt auf den Clustern. Verwenden Sie die JAR-Datei in `/home/hadoop/lib`, um die neuesten Funktionen zu nutzen.


| Version | Description | Datum der Veröffentlichung | 
| --- | --- | --- | 
| 1.0.8 | Fügt die Optionen --appendToLastFile, --requirePreviousManifest und --storageClass hinzu. | 3. Januar 2014 | 
| 1.0.7 | Fügt die Option --s3ServerSideEncryption hinzu. | 2. Mai 2013 | 
| 1.0.6 | Fügt die Option --s3Endpoint hinzu. | 6. August 2012 | 
| 1.0.5 | Verbessert die Fähigkeit, anzugeben, welche Version von S3 ausgeführt DistCp werden soll. | 27. Juni 2012 | 
| 1.0.4 | Verbessert die Option --deleteOnSuccess. | 19. Juni 2012 | 
| 1.0.3 | Bietet Support für die Optionen --numberFiles und --startingIndex. | 12. Juni 2012 | 
| 1.0.2 | Verbessert die Dateibenennung bei der Verwendung von Gruppen. | 6. Juni 2012 | 
| 1.0.1 | Erste Version von S3DistCp. | 19. Januar 2012 | 

## Fügen Sie einem Cluster einen DistCp S3-Kopierschritt hinzu
<a name="emr-3x-s3distcp-add-step"></a>

Um einem laufenden Cluster einen DistCp S3-Kopierschritt hinzuzufügen, geben Sie den folgenden Befehl ein, *j-3GYXXXXXX9IOK* ersetzen Sie ihn durch Ihre Cluster-ID und *amzn-s3-demo-bucket* ersetzen Sie ihn durch Ihren Amazon S3 S3-Bucket-Namen.

**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 add-steps --cluster-id j-3GYXXXXXX9IOK \
--steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\
Args=["--s3Endpoint,s3-eu-west-1.amazonaws.com",\
"--src,s3://amzn-s3-demo-bucket/logs/j-3GYXXXXXX9IOJ/node/",\
"--dest,hdfs:///output",\
"--srcPattern,.*[a-zA-Z,]+"]
```

**Example CloudFront Amazon-Protokolle in HDFS laden**  
In diesem Beispiel werden CloudFront Amazon-Protokolle in HDFS geladen, indem einem laufenden Cluster ein Schritt hinzugefügt wird. Während dieses Vorgangs wird das Komprimierungsformat von Gzip ( CloudFront-Standard-Format) in LZO geändert. Dies ist nützlich, da die mit LZO komprimierten Daten während der Dekomprimierung in mehrere Maps aufgeteilt werden können, sodass Sie nicht wie bei Gzip warten müssen, bis die Komprimierung abgeschlossen ist. Diese Vorgehensweise bietet eine bessere Leistung, wenn Sie die Daten mit Amazon EMR analysieren. Dieses Beispiel verbessert außerdem die Leistung, indem der in der Option `--groupBy` angegebene reguläre Ausdruck verwendet wird, um alle Protokolle für eine bestimmte Stunde in einer einzigen Datei zu kombinieren. Amazon-EMR-Cluster sind effizienter, wenn nur wenige große LZO-komprimierte Dateien verarbeitet werden anstelle von vielen kleinen mit Gzip komprimierten Dateien. Um LZO-Dateien aufzuteilen, müssen Sie sie indizieren und die Hadoop-lzo-Drittanbieterbibliothek verwenden.   
Um CloudFront Amazon-Protokolle in HDFS zu laden, geben Sie den folgenden Befehl ein, *j-3GYXXXXXX9IOK* ersetzen Sie ihn durch Ihre Cluster-ID und *amzn-s3-demo-bucket* ersetzen Sie ihn durch Ihren Amazon S3-Bucket-Namen.   
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 add-steps --cluster-id j-3GYXXXXXX9IOK \
--steps Type=CUSTOM_JAR,Name="S3DistCp step",Jar=/home/hadoop/lib/emr-s3distcp-1.0.jar,\
Args=["--src,s3://amzn-s3-demo-bucket/cf","--dest,hdfs:///local",\
"--groupBy,.*XABCD12345678.([0-9]+-[0-9]+-[0-9]+-[0-9]+).*",\
"--targetSize,128",
"--outputCodec,lzo","--deleteOnSuccess"]
```
Angenommen, das vorherige Beispiel wird für die folgenden CloudFront -Protokolldateien ausgeführt.   

```
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-01.HLUS3JKx.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-01.I9CNAZrg.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.YRRwERSA.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.dshVLXFE.gz
s3://amzn-s3-demo-bucket/cf/XABCD12345678.2012-02-23-02.LpLfuShd.gz
```
S3 DistCp kopiert, verkettet und komprimiert die Dateien in die folgenden beiden Dateien, wobei der Dateiname durch die Übereinstimmung mit dem regulären Ausdruck bestimmt wird.   

```
hdfs:///local/2012-02-23-01.lzo
hdfs:///local/2012-02-23-02.lzo
```