Wie können wir entscheiden, die insgesamt keine. der Eimer für eine hive-Tabelle
ich bin bisschen neu für hadoop. Wie pro meine Kenntnisse Eimer fixiert sind, nicht. Partitionen in hive-hive-Tabelle und nutzt die nicht. Reduzier gleiche wie die Summe nicht. der Eimer definiert beim erstellen der Tabelle. Also kann mir jemand sagen, wie die Berechnung der Gesamtzahl nicht. der Eimer in eine hive-Tabelle. Gibt es eine Formel für die Berechnung der Gesamtzahl der Eimer ?
- Habe eine Formel #buckets = (x * Average_partition_size) / JVM_memory_available_to_your_Hadoop_tasknode ; wobei x (>1) der "Faktor des Konservatismus". Aber nicht klar darüber. Brauchen eine klare Formel, die auf dieser
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Dokumentation
link
Wenn Sie wissen möchten, wie viele Eimer Sie wählen sollten in Ihrem
CLUSTER BY
Klausel, ich glaube, es ist gut zu wählen, eine Zahl, die in die Eimer, die an oder knapp unterhalb der HDFS-block-Größe.Dies sollte helfen, vermeiden, dass die HDFS-Speicher, um Dateien, die sind meistens leer.
Wählen Sie auch eine Zahl, die eine Potenz von zwei.
Können Sie Ihre HDFS-block Größe mit:
num_buckets = 1TB/block-size
. Es kann von Vorteil sein, um weitere Erwägung der Speicherbedarf jedes datum (z.B. für den Fall, Sie sind größer als die Blockgröße?), nicht völlig sicher.How does Hive distribute the rows across the buckets? In general, the bucket number is determined by the expression hash_function(bucketing_column) mod num_buckets. ...
optimalen bucket-Zahl ( B * HashTableSize der Tabelle ) /gesamter Arbeitsspeicher der Knoten, B=1.01
Nehmen wir ein Szenario, in dem die Tabelle Größe: 2300 MB
HDFS-Block Größe: 128 MB
Teilen Sie Jetzt 2300/128=17.96
Nun, erinnern Anzahl der Eimer wird immer in der macht des 2.
Also wir brauchen n, so dass 2^n > 17.96
n=5
So, ich werde zu verwenden, Anzahl der Gruppen 2^5=32
Hoffe, Es wird einigen von Euch helfen.