Quelle est la relation entre les travailleurs, les travailleurs des cas, et les exécuteurs?
Dans Étincelle mode Autonome, il y a des maîtres et des nœuds de travail.
Voici quelques questions:
- N'2 instance de travail moyenne d'un nœud travailleur avec 2 processus de travail?
- Est-ce que chaque travailleur exemple tenir un exécuteur pour une application spécifique (qui gère le stockage, la tâche) ou un nœud travailleur est titulaire d'un exécuteur testamentaire?
- Est-il un organigramme expliquer comment étincelle d'exécution, tels que le nombre de mots?
Vous devez vous connecter pour publier un commentaire.
Je suggère la lecture de la Spark cluster docs première, mais plus encore ce Cloudera post de blog expliquant ces modes.
Votre première question dépend de ce que tu veux dire par 'cas'. Un nœud est une machine, et il n'y a pas une bonne raison de courir plus d'un travailleur par machine. Si deux nœuds de travail signifie généralement deux machines en une Étincelle travailleur.
Des agents de plusieurs interprètes, pour de nombreuses applications. Une demande a exécuteurs sur de nombreux travailleurs.
Votre troisième question n'est pas claire.
Étendre à d'autres grandes réponses, je voudrais décrire avec quelques images.
Si nous représentent à la fois le maître et les travailleurs à une place pour le mode autonome.
Si vous êtes curieux de savoir comment Spark fonctionne avec une pelote de LAINE? vérifiez ce post Étincelle sur le FIL
En général, nous appelons les travailleurs de l'instance en tant qu'esclave comme c'est un processus pour exécuter étincelle tâches/travaux. Suggéré de cartographie pour le nœud(une machine physique ou virtuelle) et travailleur,
Oui, Un travailleur nœud peut être tenue de plusieurs exécuteurs testamentaires (processus) si elle dispose de suffisamment de CPU, de Mémoire et de Stockage.
Vérifier le Travailleur nœud dans l'image donnée.
BTW, le Nombre des liquidateurs à un travailleur nœud à un point donné du temps est dépend entièrement de de la charge de travail sur le cluster et capacité du nœud pour exécuter la façon dont beaucoup d'exécuteurs testamentaires.
Si nous regardons l'exécution de l'Étincelle prospective sur tout gestionnaire de ressources pour un programme, qui
join
deuxrdd
s et faire un peu dereduce
opération puisfilter
HIH
Je sais que c'est une vieille question et de Sean réponse a été excellente. Mon article est au sujet de la SPARK_WORKER_INSTANCES dans MrQuestion commentaire. Si vous utilisez Mesos ou de la LAINE que votre cluster manager, vous êtes en mesure d'exécuter plusieurs exécuteurs testamentaires sur la même machine avec un travailleur, donc il n'y a vraiment pas besoin d'exécuter plusieurs travailleurs par machine. Toutefois, si vous utilisez autonome gestionnaire de cluster, actuellement il encore permet uniquement d'un exécuteur testamentaire par des processus de travail sur chaque machine physique. Ainsi dans le cas où vous avez une super machine de grande taille et souhaitez exécuter plusieurs exectuors sur elle, vous avez à commencer à plus de 1 processus de travail. C'est ce que SPARK_WORKER_INSTANCES dans le spark-env.sh est pour. La valeur par défaut est 1. Si vous utilisez ce paramètre, assurez-vous de définir SPARK_WORKER_CORES explicitement à limiter les cœurs par travailleur, ou bien chaque travailleur va essayer d'utiliser tous les cœurs.
Cette autonome gestionnaire du cluster de la limitation de disparaître de sitôt. Selon cette SPARK-1706, ce problème sera corrigé et publié dans Spark 1.4.
Comme Lan a dit, l'utilisation de plusieurs travailleurs instances n'est pertinente que dans le mode autonome. Il y a deux raisons pour lesquelles vous voulez avoir plusieurs instances: (1) les déchets des pauses collecteur peut faire mal débit pour les grandes machines virtuelles (2) de la taille du Segment de >32 GO ne pouvez pas utiliser CompressedOoops
Lire plus sur comment mettre en place plusieurs instances travailleur.