Ü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 der Bezeichnung tmp auf Grundlage einer Tabelle in Amazon S3 mit der Bezeichnung 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.