Spark : vérifiez votre cluster de l'INTERFACE utilisateur de s'assurer que les travailleurs sont enregistrés
J'ai un simple programme Spark:
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val conf = new SparkConf().setMaster("spark://10.250.7.117:7077").setAppName("Simple Application").set("spark.cores.max","2")
val sc = new SparkContext(conf)
val ratingsFile = sc.textFile("hdfs://hostname:8020/user/hdfs/mydata/movieLens/ds_small/ratings.csv")
//first get the first 10 records
println("Getting the first 10 records: ")
ratingsFile.take(10)
//get the number of records in the movie ratings file
println("The number of records in the movie list are : ")
ratingsFile.count()
}
}
Lorsque j'essaie d'exécuter ce programme à partir de l'étincelle-shell c'est à dire je me connecte sur le nom de nœud (Cloudera de l'installation) et d'exécuter les commandes de manière séquentielle sur la spark-shell:
val ratingsFile = sc.textFile("hdfs://hostname:8020/user/hdfs/mydata/movieLens/ds_small/ratings.csv")
println("Getting the first 10 records: ")
ratingsFile.take(10)
println("The number of records in the movie list are : ")
ratingsFile.count()
Je obtenir des résultats corrects, mais si j'essaie d'exécuter le programme à partir d'eclipse, pas de ressources sont affectées à des programme et dans le journal de la console tout ce que je vois est:
AVERTIR TaskSchedulerImpl: emploi Initiale n'a pas accepté toutes les ressources; vérifier votre cluster de l'INTERFACE utilisateur de s'assurer que les travailleurs sont inscrits et ont suffisamment de ressources
Aussi, dans l'Étincelle de l'INTERFACE utilisateur, je vois ceci:
L'emploi continue de fonctionner - Spark
Aussi, il convient de noter que cette version de spark a été installé avec Cloudera (donc pas de nœuds de travail).
Que dois-je faire pour faire ce travail?
EDIT:
J'ai vérifié le HistoryServer et ces emplois ne sont pas là (même dans les demandes incomplètes)
TaskSchedulerImpl: Initial job has not accepted any resources;
OriginalL'auteur vineet sinha | 2016-02-26
Vous devez vous connecter pour publier un commentaire.
J'ai fait la configuration et le réglage des performances pour de nombreux étincelle clusters et c'est un très commun/message normal de voir quand vous êtes premier de la préparation/configuration d'un cluster à gérer votre charge de travail.
C'est sans équivoque en raison de l'insuffisance des ressources pour le travail lancé. Le travail est à la demande de:
Pour les Fils, le maître est tout simplement
--master yarn
spark.apache.org/docs/latest/running-on-yarn.htmlspark.apache.org/docs/latest/configuration. La cause est l'option par défaut dans le mode autonome est mauvais, vous permettra de bloquer l'ensemble de votre cluster si vous ne mettez pas le nombre de --total-exécuteur-carottes 1 FIL mode, tous les cœurs disponibles sur le travailleur autonome et Mesos grossiers modes.
OriginalL'auteur javadba
Enfin compris ce qu'est la réponse.
Lors du déploiement d'une étincelle d'un programme sur un FIL de cluster, le maître de l'URL est juste de la laine.
Dans le programme, l'étincelle contexte devrait ressemble à:
Alors ce projet eclipse devrait être construit à l'aide de Maven et le jar généré doit être déployé sur le cluster en le copiant dans le cluster, puis en exécutant la commande suivante
Cela signifie que l'exécution d'eclipse directement ne fonctionnerait pas.
OriginalL'auteur vineet sinha
Vous pouvez vérifier votre cluster de travail du nœud de noyaux: votre demande ne peut pas dépasser. Par exemple, vous avez deux nœud. Et par nœud que vous avez les 4 cœurs. Ensuite, vous avez 2 applications de s'exécuter. De sorte que vous pouvez donner à chaque application 4 cœurs pour exécuter le travail.
Vous pouvez définir comme ceci dans le code:
Cela fonctionne pour moi.
OriginalL'auteur iwwenbo
Vous n'avez pas de travailleurs pour exécuter le job. Il n'existe pas de cœurs disponibles pour le travail à exécuter et c'est la raison pour laquelle le travail de l'état est toujours en "Attente".
Si vous n'avez pas de travailleurs enregistrés avec Cloudera comment les emplois de l'exécuter?
J'ai souvent vu ces erreurs quand il n'y a pas de travailleurs qui sont disponibles ou il n'y a pas assez de cœurs pour le travail.
vous avez raison. Mais depuis que je suis à l'exécution de ce programme sur le FIL, ce "maître de l'URL d'un format qui peut être erroné. Des idées sur qui ?
OriginalL'auteur Saket