Quelle est l'étincelle.le pilote.maxResultSize?

La ref dit:

Limite de la taille totale de sérialisé résultats de toutes les partitions pour chaque
Étincelle d'action (par exemple, recueillir). Doit être d'au moins 1M, ou 0 pour
illimité. Emplois sera annulée si la taille totale est au-dessus de cette limite.
Avoir une limite élevée peut entraîner des erreurs de mémoire dans le pilote (en fonction
sur la spark.le pilote.de la mémoire et de la surcharge de la mémoire des objets dans la JVM). Réglage
une limite appropriée peut protéger le conducteur de la mémoire des erreurs.

Quel est cet attribut faire exactement? Je veux dire, dans un premier temps (depuis que je ne suis pas aux prises avec un travail qui échoue à cause d'erreurs de mémoire) j'ai pensé que je devrais augmenter.

À la réflexion, il semble que cet attribut définit la taille maximale de la raison, qu'un travailleur peut envoyer vers le conducteur, afin de laisser la valeur par défaut (1G) serait la meilleure approche pour protéger le conducteur..

Mais qui va se passer sur ce cas, le travailleur devra envoyer plus de messages, de sorte que la surcharge sera juste que la tâche va être plus lent?


Si je comprends bien, en supposant que le travailleur veut envoyer 4G de données pour le pilote, puis d'avoir spark.driver.maxResultSize=1G, va amener le travailleur à envoyer 4 messages (au lieu de 1, avec un nombre illimité spark.driver.maxResultSize). Si oui, alors l'augmentation de cet attribut pour protéger mon pilote d'être assassiné à partir de Fils doit être mauvais.

Mais encore la question ci-dessus reste..je veux dire que si je l'ai mis à 1M (le minimum), qu'il sera le plus protecteur approche?

OriginalL'auteur gsamaras | 2016-08-22