

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

# Konfigurieren von Tez
<a name="tez-configure"></a>

Sie können Tez anpassen, indem Sie mit der Konfigurationsklassifizierung `tez-site` Einstellungen in der Konfigurationsdatei `tez-site.xml` konfigurieren. Weitere Informationen finden Sie [TezConfiguration](https://tez.apache.org/releases/0.8.2/tez-api-javadocs/configs/TezConfiguration.html)in der Apache Tez-Dokumentation. Verwenden Sie entsprechend die `hive-site`- und `pig-properties`-Konfigurationsklassifizierungen, um zu ändern, dass Hive oder Pig die Tez-Ausführungs-Engine verwendet. Beispiele werden unten angezeigt.

## Beispielkonfiguration
<a name="tez-configure-example"></a>

**Example Beispiel: Anpassen der Tez-Stammprotokollierungsebene und Festlegen von Tez als Ausführungs-Engine für Hive und Pig**  
Mit dem unten angezeigten `create-cluster`-Beispielbefehl wird ein Cluster mit installierten Tez, Hive und Pig erstellt. Der Befehl verweist auf eine Datei die in Amazon S3 `myConfig.json`gespeichert ist und die Eigenschaften für die `tez-site`-Klassifizierung angibt, die `tez.am.log.level` auf `DEBUG` setzt und die Ausführungs-Engine für Hive und Pig mit den Konfigurationsklassifizierungen `hive-site` und `pig-properties` auf Tez festlegt.  
Linux-Zeilenfortsetzungszeichen (\$1) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

```
aws emr create-cluster --release-label emr-7.12.0 \
--applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName=myKey \
--instance-type m5.xlarge --instance-count 3 \
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json --use-default-roles
```
Beispielinhalte von `myConfig.json` werden unten angezeigt.  

```
[
    {
      "Classification": "tez-site",
      "Properties": {
        "tez.am.log.level": "DEBUG"
      }
    },
    {
      "Classification": "hive-site",
      "Properties": {
        "hive.execution.engine": "tez"
      }
    },
    {
      "Classification": "pig-properties",
      "Properties": {
        "exectype": "tez"
      }
    }
  ]
```

**Anmerkung**  
Ab Amazon-EMR-Version 5.21.0 können Sie Cluster-Konfigurationen überschreiben und zusätzliche Konfigurationsklassifikationen für jede Instance-Gruppe in einem ausgeführten Cluster angeben. Dazu verwenden Sie die Amazon EMR-Konsole, das AWS Command Line Interface (AWS CLI) oder das AWS SDK. Weitere Informationen finden Sie unter [Angeben einer Konfiguration für eine Instance-Gruppe in einem aktiven Cluster](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

## Asynchrone Öffnung von Tez-Splits
<a name="tez-configure-async"></a>

Wenn der Tabellenpfad eine große Anzahl kleiner Dateien enthält und eine Abfrage versucht, sie alle zu lesen, wird jede kleine Datei, die jeder einzelnen Aufteilung entspricht, zu einem *gruppierten Tez-Split* zusammengefasst. Ein einzelner Mapper verarbeitet dann den einzelnen gruppierten Tez-Split. Da die Ausführung synchron ist, wird jeder einzelne Split im Rahmen des gruppierten Splits einzeln verarbeitet. Dafür ist erforderlich, dass `RecordReader`-Objekte die Splits synchron verarbeiten.

Amazon EMR 6.15.0 führt Konfigurationen ein, die Sie angeben können, um die Eingabe-Splits asynchron in einem gruppierten Tez-Split zu öffnen. Das Feature wurde von [TEZ-4397](https://issues.apache.org/jira/browse/TEZ-4397) initiiert, wies jedoch in OSS Hive Regressionen auf. EMR Hive hat die Regressionen und zusätzliche Fehler in der Hive ACID-Tabelle behoben. Diese Verbesserung führt zu einer schnelleren Leistung von Leseabfragen, wenn eine einzelne Tez-Gruppierung eine große Anzahl von Eingabe-Splits enthält.


| Name | Klassifizierung | Description | 
| --- | --- | --- | 
|  `tez.grouping.split.init.threads`  |  `tez-site`  | Gibt die Anzahl der Daemon-Threads an, die Tez verwendet, um die `RecordReaders` vorab zu initiieren und Splits zu öffnen. Für ACID-Tabellen ist der unterstützte Höchstwert von `tez.grouping.split.init.threads` `1`. | 
|  `tez.grouping.split.init.recordreaders`  |  `tez-site`  | Gibt die Anzahl an `RecordReaders` an, die von den Daemon-Threads vorinitialisiert werden sollen. Dies kann hilfreich sein, wenn ein gruppierter Tez-Split eine große Anzahl von `InputSplits` enthält. Die Initialisierung von `RecordReaders` zur Verarbeitung dieser Eingabe-Splits kann asynchron mit Daemon-Threads anstelle einer sequentiellen Verarbeitung erfolgen. | 

Hinweise zur Konfiguration:


| Gegenstand | Details | 
| --- | --- | 
| Empfohlene Konfigurationseinstellungen | Es wird empfohlen, die obigen Konfigurationseinstellungen auf die gewünschten Werte `hive-site` sowohl für als auch festzulegen`tez-site`. | 
| Übereinstimmende Werte | Die Werte der Konfigurationseinstellungen sollten sowohl in als auch `hive-site` identisch sein`tez-site`. | 
| LLAP-Empfehlung | Es wird nicht empfohlen, diese Funktion zu verwenden, wenn LLAP aktiviert ist. | 

### Benchmarking für das asynchrone Öffnen von Tez-Splits
<a name="tez-configure-async-benchmark"></a>

Wir haben die folgenden Umgebungen und Konfigurationen für das Benchmarking der asynchronen Split-Öffnungsfunktion von Tez verwendet:
+ **Benchmark-Umgebung** – Amazon-EMR-Cluster mit einem Primärknoten, der m5.16xlarge verwendet, und 16 Core-Knoten, die m5.16xlarge verwenden.
+ **Benchmark-Konfigurationen** – Um das Szenario für das Benchmarking zu simulieren, bei dem sich eine große Anzahl von Eingabe-Splits in einem einzigen gruppierten Tez-Split befinden, ist `tez.grouping.split-count` ist auf `1` eingestellt.
+ **Für das Benchmarking verwendete Tabelle** – Die Tabelle enthält 200 Partitionen, wobei jede Partition eine einzelne Datei enthält. Der Benchmark wird durchgeführt, wenn diese Tabelle CSV-Dateien enthält und wenn diese Tabelle Parquet-Dateien enthält. Hive-Abfrage für das Benchmarking: zehnmal `SELECT COUNT(*)` aus der Tabelle, und es wird die durchschnittliche Laufzeit berechnet.
+ **Konfigurationen zur Aktivierung des asynchronen geteilten Öffnens von Tez** – wie folgt:
  + `tez.grouping.split.init.threads` = `4`
  + `tez.grouping.split.init.recordreaders` = `10`


| Datensatz | Feature deaktiviert (Basisversion) | Feature aktiviert | Verbesserung | 
| --- | --- | --- | --- | 
|  CSV-Datensatz  |  90,26 Sekunden  | 79,20 Sekunden | 12,25% | 
|  Parquet-Datensatz  |  54,67 Sekunden  | 42,23 Sekunden | 22,75% | 