The Doppler Quarterly (DEUTSCHE) Herbst 2017 | Page 31
des HiveServers) und der Anpassung von Speicherpara-
metern. Zum Beispiel ist es empfehlenswert, die Größe
von Tez-Containern als Vielfaches der YARN-Cont-
ainergröße festzulegen. Es gibt im Web viele Diskussio-
nen und Anleitungen zum Thema Tez-Leistungsopti-
mierung. Wir empfehlen praxiserfahrenen Benutzern,
sich mit den Details vertraut zu machen, die zugrunde-
liegenden Konzepte zu verinnerlichen und mit realen
Daten zu experimentieren.
Vectorized Query Execution
Die standardmäßige Query Execution Engine von Hive
verarbeitet eine Zeile nach der anderen. Dies erfordert
mehrere Schichten virtueller Methodenaufrufe inner-
halb der verschachtelten Schleife, was aus CPU-Pers-
pektive sehr ineffizient ist. Vectorized Query Execution
ist ein Hive-Feature, mit dem sich diese Ineffizienzen
beseitigen lassen. Dabei werden die Zeilen in Stapeln
von 1024 Zeilen gelesen, und die Operation wird gleich-
zeitig und nicht einzeln auf die gesamte Datensatz-
sammlung angewendet. Dieser vektorbasierte Ausfüh-
rungsmodus hat sich bei typischen Abfrageoperationen
wie Scans, Filterungen, Aggregationen und Joins als
deutlich schnellere Alternative erwiesen. Um das Fea-
ture Vectorized Query Execution zu verwenden, müssen
Sie Ihre Daten in ORC speichern, die Eigenschaft „for-
mat.hive.vectorized.execution.enabled“ auf „true“ set-
zen und die Abfrage für die ORC-gestützten Tabellen
ausführen. Da Vectorized Query Execution in EMR-Clus-
tern derzeit nicht standardmäßig aktiviert ist, muss dies
in Hive manuell aktiviert werden.
Cost-Based Optimizer
Die Idee des Coast-Based Optimizer (CBO) in Apache
Hive ist der Idee in der Welt der relationalen Datenban-
ken sehr ähnlich. Wir erfassen Statistiken wie die Anzahl
der Zeilen in einer Tabelle oder Partition un