J'évalue actuellement Spark 2.1.0 sur un petit cluster (3 Nodes avec 32 CPU et 128 GB Ram) avec un benchmark en régression linéaire (Spark ML). Je n'ai mesuré que l'heure du calcul des paramètres (sans compter le démarrage, le chargement des données, ...) et reconnu le comportement suivant. Pour les petits jeux de données 0,1 Mio - 3 Mio, le temps mesuré n'augmente pas vraiment et reste à environ 40 secondes. Ce n'est qu'avec des jeux de données plus volumineux, tels que les points de données de 300 Mio, que le temps de traitement est passé à 200 secondes. Il semble donc que le cluster ne s'adapte pas du tout aux petits jeux de données.Le cluster Spark ne s'adapte pas aux petites données
J'ai également comparé le petit ensemble de données sur mon PC local avec le cluster en utilisant seulement 10 travailleurs et 16 Go de RAM. Le temps de traitement de la grappe est plus grand d'un facteur 3. Donc est-ce considéré comme un comportement normal de SPARK et explicable par la surcharge de communication ou est-ce que je fais quelque chose de mal (ou la régression linéaire n'est-elle pas vraiment représentative)?
Le cluster est un cluster autonome (sans Yarn ou Mesos) et les benchmarks ont été soumis avec 90 travailleurs, chacun avec 1 core et 4 Go de RAM.
Spark soumettre: étincelle ./spark-submit de --master: // serveur: 7077 du client de référence --deploy mode --total-exécuteur-cœurs 90 --executor mémoire 4g - num-executors 90 .../Benchmark.jar pathToData
Je ne suis pas sûr si vous n'êtes pas satisfait de la performance sur le plus petit 0.1-0.Les ensembles de données 3M ou le plus grand ensemble de données 300M? – ImDarrenG
Salut, je ne suis pas mécontent de la performance. Je me demandais simplement s'il est normal qu'un cluster prenne une demi-minute pour le calcul, même si les données sont déjà chargées et assez petites. –
Je dirais que vos observations sont raisonnables. Je fournirai une réponse plus détaillée une fois que j'aurai dormi - si personne d'autre ne le fait pendant ce temps. – ImDarrenG