2017-06-15 4 views
0

Je veux exécuter l'application wordcount spark sur quatre fichiers différents en même temps.spark-ordonnancement à travers l'application

J'ai un cluster autonome avec 4 nœuds de travail, chaque nœud ayant une mémoire de base et 1 Go.

étincelle fonctionne en mode autonome ... 1.4worker noeuds de 2,1 de base pour chaque noeud de travail mémoire de 3,1 Go pour chaque noeud 4.core_max mis à 1

./conf/spark-env. sh

** 

export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=1" 
export SPARK_WORKER_OPTS="-Dspark.deploy.defaultCores=1" 
export SPARK_WORKER_CORES=1 
export SPARK_WORKER_MEMORY=1g 
export SPARK_WORKER_INSTANCES=4 

**

je l'ai exécuté en utilisant le fichier .sh

./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R txt1 & 
./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R txt2 & 
./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R txt3 & 
./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R txt4 

est-ce une manière correcte de soumettre l'application parallèlement?

quand une application en cours d'exécution, il prend 2sec comme ça (seulement en utilisant un noyau) lorsque 4 application donnée en même temps alors chaque application prend plus de 4 secondes ... Comment exécuter l'application d'allumage sur les différents fichiers en parallèle?

Répondre

0

Lorsque vous soumettez plusieurs travaux à un cluster spark, le maître d'application/gestionnaire de ressources planifie automatiquement les travaux en parallèle. (comme l'étincelle est sur le fil).

Vous n'avez pas besoin d'effectuer de planification supplémentaire pour cela.

Et pour le scénario que vous avez montré, vous auriez pu lire tous les fichiers différents dans un seul travail d'étincelle. Et croyez-moi, en raison de l'évaluation paresseuse de Spark et des optimisations DAG et des transformations RDD (plans logiques/physiques), la lecture de différents fichiers et le nombre de mots iront en parallèle.

Vous pouvez lire tous les fichiers en tant que seul emploi:

sc.wholeTextFiles("<folder-path>") 

Le folder-path est le répertoire parent où tous les fichiers résident.