anwenden Ich habe eine Tabelle test_details
mit etwa 4 Millionen Datensätze. Unter Verwendung der Daten in dieser Tabelle muss ich eine neue partitionierte Tabelle test_details_par
mit Datensätzen erstellen, die auf visit_date
partitioniert sind. Erstellen der Tabelle ist keine Herausforderung, aber wenn ich zu dem Teil komme, wo ich die Daten mit dynamischen Partitionen einfügen muss, gibt Hive auf, wenn ich versuche, Daten für mehrere Tage einzufügen. Wenn ich es für 2 oder 3 Tage mache, werden die Map Reduce-Jobs erfolgreich ausgeführt, aber für mehr Tage schlägt es fehl, JAVA Heap Space Error
oder GC Error
zu geben.Nicht in der Lage, dynamische Partitionierung für einen großen Datensatz in Hive
Ein vereinfachtes Snapshot meiner DDLs ist wie folgt:
CREATE TABLE test_details_par(visit_id INT, visit_date DATE, store_id SMALLINT);
INSERT INTO TABLE test_details_par PARTITION(visit_date) SELECT visit_id, store_id, visit_date FROM test_details DISTRIBUTE BY visit_date;
habe ich versucht, diese Parameter einstellen, so dass Hive meine Arbeit in einer besseren Art und Weise ausführt:
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.dynamic.partition=true;
set hive.exec.max.dynamic.partitions.pernode = 10000;
Gibt es etwas, was ich vermisse, um die INSERT für eine komplette Charge ohne Angabe von th ausführen e Daten speziell?