web-dev-qa-db-fra.com

Comment empêcher les = Spark) exécutants de se perdre en mode client YARN?

Bonjour, j'ai un travail Spark) qui s'exécute localement avec moins de données, mais lorsque je le programme sur YARN, je continue à obtenir l'ERREUR suivante et lentement, tous les exécuteurs sont supprimés de l'interface utilisateur et mon travail échoue.

15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 8 on myhost1.com: remote Rpc client disassociated
15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 6 on myhost2.com: remote Rpc client disassociated

J'utilise la commande suivante pour programmer spark travail en mode client-fil

 ./spark-submit --class com.xyz.MySpark --conf "spark.executor.extraJavaOptions=-XX:MaxPermSize=512M" --driver-Java-options -XX:MaxPermSize=512m --driver-memory 3g --master yarn-client --executor-memory 2G --executor-cores 8 --num-executors 12  /home/myuser/myspark-1.0.jar

Je ne sais pas quel est le problème s'il vous plaît guide. Je suis nouveau à Spark. Merci d'avance.

42
u449355

J'ai eu un problème très similaire. J'avais perdu beaucoup d'exécuteurs, peu importe la quantité de mémoire allouée.

Si vous utilisez du fil, la solution consistait à définir --conf spark.yarn.executor.memoryOverhead=600, sinon, si votre cluster utilise des mesos, vous pouvez essayer --conf spark.mesos.executor.memoryOverhead=600 au lieu.

Dans spark 2.3.1+, l'option de configuration est maintenant --conf spark.yarn.executor.memoryOverhead=600

Il semble que nous ne laissions pas assez de mémoire pour YARN et que des conteneurs soient tués à cause de cela. Après avoir défini que nous avons eu différentes erreurs de mémoire insuffisante, mais pas le même problème d’exécuteur perdu.

31
whaleberg