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
Sie können Tez anpassen, indem Sie mit der Konfigurationsklassifizierung tez-site
Einstellungen in der Konfigurationsdatei tez-site.xml
konfigurieren. Weitere Informationen finden Sie TezConfigurationhive-site
- und pig-properties
-Konfigurationsklassifizierungen, um zu ändern, dass Hive oder Pig die Tez-Ausführungs-Engine verwendet. Beispiele werden unten angezeigt.
Beispielkonfiguration
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.
Anmerkung
Linux-Zeilenfortsetzungszeichen (\) 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.5.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
Mit EMR Amazon-Version 5.21.0 und höher können Sie Cluster-Konfigurationen überschreiben und zusätzliche Konfigurationsklassifizierungen für jede Instance-Gruppe in einem laufenden Cluster angeben. Dazu verwenden Sie die EMR Amazon-Konsole, die AWS Command Line Interface (AWS CLI) oder die AWS SDK. Weitere Informationen finden Sie unter Angeben einer Konfiguration für eine Instance-Gruppe in einem aktiven Cluster.
Asynchrone Öffnung von Tez-Splits
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.
Name | Klassifizierung | Beschreibung |
---|---|---|
|
|
Gibt die Anzahl der Daemon-Threads an, die Tez verwendet, um die |
|
|
Gibt die Anzahl an |
Benchmarking für das asynchrone Öffnen von Tez-Splits
Wir haben die folgenden Umgebungen und Konfigurationen für das Benchmarking der asynchronen Split-Öffnungsfunktion von Tez verwendet:
-
Benchmark-Umgebung — EMR Amazon-Cluster mit einem primären Knoten, der verwendet m5.16xlarge, und 16 Kernknoten, die verwenden m5.16xlarge.
-
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 auf1
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 Folgendes enthält CSV Dateien und wann 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 dataset |
90,26 Sekunden |
79,20 Sekunden |
12,25% |
Parquet dataset |
54,67 Sekunden |
42,23 Sekunden |
22,75% |