2017-04-26 2 views
1

Je crée une preuve de concept avec une étincelle autonome sur des kubernetes avec un jupyterhub.Allocation dynamique Spark Jupyter

Je souhaite une allocation dynamique, car mes utilisateurs quittent fréquemment le clavier avec leur application (notebook) en état de fonctionnement (mais pas de tâches/tâches), mais le pilote est assis en attente de travail.

allocation dynamique ne semble pas botter De la documentation, il attend.

spark.dynamicAllocation.executorIdleTimeout=60s 

mais quelle est la définition du ralenti? pour moi, il semble ces ordinateurs portables sont inactifs

Répondre

1

Il y a peu de raisons pour que,

Si vos utilisateurs établissent le nombre d'exécuteurs, ce nombre d'exécuteurs ne sera jamais supprimé. Ce que vous devez définir pour les exécuteurs minimum doit être le:

Dans mon cas, nous avons mis à 2, ce qui permet aux scientifiques de données de rester avec un minimum d'exécuteurs pour le travail même si le cluster est plein.

Donc, vérifiez d'abord si l'option '--num-executors' est supprimée et changez pour spark.dynamicAllocation.minExecutors.

Une autre raison pour laquelle les travailleurs n'ont pas été supprimés concerne les données mises en cache, si votre Data Scientist possède des données en cache. Pour cette option, cochez l'option spark.dynamicAllocation.cachedExecutorIdleTimeout pour mon utilisation, nous n'avons pas modifié. Pour cette raison, selon documentation qui dit:

exécuteurs par défaut contenant des données mises en cache sont jamais supprimés

changer l'option pour spark.dynamicAllocation.cachedExecutorIdleTimeout

Pour plus de détails sur l'allocation dynamique voir cette présentation dans Spark Summit Europe 2016