Nous stockons des champs de chaîne dont la longueur varie de petite (quelques Ko) à très longue (< 400 Mo) dans la table HIVE. Nous sommes maintenant confrontés au problème de MOO lors de la copie de données d'une table à une autre (sans conditions ou jointures), ce qui n'est pas exactement ce que nous faisons en production, mais c'est le cas d'utilisation le plus simple. Ainsi, le HQL est fondamentalement juste:HIVE très long champ donne OOM Heap
INSERT INTO new_table
SELECT * FROM old_table;
Container et Java Heap a été mis à 16 Go, nous avons essayé différents formats de fichiers (rcfile, ORC), avec et sans compression, moteurs différents (MR, TEZ), etc., mais rien ne nous aide et nous tombons toujours sur OOM.
Nous ne savons pas exactement ce qui s'y passe exactement. Nous nous attendions à ce que le processus Java ne prenne que quelques fois la mémoire de la longueur maximale d'un enregistrement unique, qui est ~ 400M, mais pas tout le tas de 16Go. Pouvez-vous nous donner quelque chose sur lequel nous devrions essayer ou nous concentrer?
Version utilisée: HDP 2.4.2
journal des échantillons lors de l'utilisation TEZ + ORC + 8G de RAM: https://pastebin.com/uza84t6F
S'il vous plaît joindre les journaux d'erreurs et ruche paramètres. – leftjoin
édité, attaché le journal d'échantillon pour TEZ + ORC + 8G RAM – Martin