Überlegungen für die Verwendung von Hive in Amazon EMR 4.x - Amazon EMR

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.

Überlegungen für die Verwendung von Hive in Amazon EMR 4.x

In diesem Abschnitt werden die Unterschiede behandelt, die Sie berücksichtigen sollten, wenn Sie Hive-Version 1.0.0 auf Amazon-EMR-4.x-Versionen im Vergleich zu Hive 2.x auf Amazon-EMR-5.x-Versionen verwenden.

ACID-Transaktionen nicht unterstützt

Hive auf Amazon-EMR-4.x-Versionen unterstützt keine ACID-Transaktionen mit Hive-Daten, die in Amazon S3 gespeichert werden, wenn 4.x-Versionen verwendet werden. Wenn Sie versuchen, eine transaktionale Tabelle in Amazon S3 zu erstellen, tritt eine Ausnahme auf.

Lesen und Schreiben von Tabellen in Amazon S3

Hive in Amazon-EMR-4.x-Versionen können direkt ohne die Verwendung temporärer Dateien in Amazon S3 schreiben. Dadurch wird die Leistung verbessert, eine Folge davon ist allerdings, dass Sie nicht in derselben Tabelle in Amazon S3 innerhalb derselben Hive-Anweisung lesen und schreiben können. Sie können dieses Problem umgehen, indem Sie eine temporäre Tabelle in HDFS erstellen und verwenden.

Das folgende Beispiel zeigt, wie Sie mit mehreren Hive-Anweisungen eine Tabelle in Amazon S3 aktualisieren. Die Anweisungen erstellen eine temporäre Tabelle in HDFS mit dem Namen tmp auf Grundlage einer Tabelle in Amazon S3 mit dem Namen my_s3_table. Die Tabelle in Amazon S3 wird dann mit den Inhalten der temporären Tabelle aktualisiert.

CREATE TEMPORARY TABLE tmp LIKE my_s3_table; INSERT OVERWRITE TABLE tmp SELECT ....; INSERT OVERWRITE TABLE my_s3_table SELECT * FROM tmp;

Log4j im Vergleich zu Log4j 2

Hive auf Amazon-EMR-4.x-Versionen verwendet Log4j. Ab Version 5.0.0, Log4j 2 ist die Standardeinstellung. Diese Versionen erfordern möglicherweise unterschiedliche Protokollierungskonfigurationen. Weitere Informationen finden Sie unter Apache Log4j 2.

MapReduce ist die Standard-Ausführungs-Engine

Hive auf Amazon-EMR-4.x-Versionen verwendet MapReduce als Standard-Ausführungs-Engine. Ab Amazon-EMR-Version 5.0.0 ist Tez die Standardversion, die für die meisten Workflows eine verbesserte Leistung bietet.

Hive-Autorisierung

Hive auf Amazon EMR 4.x-Versionen unterstützt die Hive-Autorisierung für HDFS, aber nicht für EMRFS und Amazon S3. Amazon-EMR-Cluster werden standardmäßig mit deaktivierter Autorisierung ausgeführt.

Dateizusammenführung mit Hive in Amazon S3

Hive auf Amazon-EMR-4.x-Versionen führt kleine Dateien am Ende eines Map-Auftrags zusammen, wenn hive.merge.mapfiles true ist. Eine Zusammenführung wird nur ausgelöst, wenn die durchschnittliche Leistungsgröße des Auftrags kleiner ist als die hive.merge.smallfiles.avgsize-Einstellung. Amazon EMR; Hive verhält sich genau gleich, wenn sich der Endausgabepfad in HDFS befindet. Wenn sich der Ausgabepfad in Amazon S3; befindet, wird der Parameter hive.merge.smallfiles.avgsize jedoch ignoriert. In diesem Fall wird die Zusammenführungsaufgabe immer dann ausgelöst, wenn hive.merge.mapfiles auf true gesetzt ist.