J'ai configuré une étincelle (1.6) cluster autonome. Avoir 1 maître et ajouté 3 machines sous le fichier Conf / Slaves en tant que travailleurs. Même si j'ai alloué la mémoire de 4 Go à chacun de mes ouvriers dans Spark, pourquoi n'utilise-t-il que 1024 Mo lorsque l'application est en cours d'exécution? Je voudrais que cela utilise tous les 4 Go alloués. Aidez-moi à comprendre où et ce que je fais mal. P>
Ci-dessous est la capture d'écran de la page Spark Master (lorsque l'application est en cours d'exécution à l'aide de Spark-Soumettre) dans laquelle la colonne forte> mémoire forte> indique 1024,0 Mo utilisé entre crochets à côté de 4,0 Go. p>
J'ai aussi essayé de définir Ce sont les options que j'ai définies dans le fichier Spark-env.sh P>
Exporter spark_worker_cores = 3 p>
Export Spark_worker_Memory = 4G p>
Export Spark_worker_Instances = 2 P>
3 Réponses :
Le paramètre que vous recherchez est Lorsque vous définissez la mémoire ouvrière à 4G, le plus grand exécuteur que vous exécutez sur ce travailleur est de 4G.
PS: Vous pouvez avoir des configurations différentes (chacune ayant une mémoire de travail différente). P> exécutant-mémoire code>
Essayez de fournir à votre application Spark lorsque vous le démarrez. P>
- exécuteur-mémoire 4G code> p>
Comme si j'avais mentionné dans mon message d'origine, j'ai essayé l'option -executor-Memory 4G lorsque je démarre ma candidature et il n'y a toujours pas de changement. Merci.
Une autre solution de contournement est d'essayer de définir les paramètres suivants à l'intérieur du une fois que vous avez défini ci-dessus (seulement le dernier Ligne dans votre cas) Arrêtez tous les travailleurs à la fois et redémarrez-les. Il est préférable d'initialiser la mémoire des exécuteurs de cette façon, car votre problème semble être qu'aucun exécuteur ne peut allouer toute la mémoire disponible de son travailleur. P> P> Conf / Spark-par défaut.conf code> Fichier:
Où il doit être fixé. Cela doit être dans le noeud maître (pilote ???). Dans mon cas, le maître et le pilote sont les mêmes. Une fois que j'ai défini le Spark.Executor.Memory en tant que 3G en Spark-Parfault.Conf, la mémoire utilisée a augmenté à 3G. Peut-être que c'était dans la documentation et je l'ai manqué. Mais merci pour le début. Je vais donc marquer cela comme réponse.
Je vous en prie. De ma compréhension Passer le paramètre Spark.Executor.Memory code> via le script initialise l'exécuteur sur le travailleur avec la mémoire spécifiée. Bien que le drapeau
- EXECTOR-EXECTOR-EXECTORUT-MEMORY CODE> sur le pilote définit la quantité de mémoire réservée à partir de chaque exécuteur afin que le travail de soumission puisse être exécuté.
Créer un fichier appelé Spark-env.sh dans l'annuaire Spark / Conf. ajouter cette ligne Spark_Executeur_Memory = 4G p>