4
votes

Databricks PySpark Job continue d'être annulé

J'utilise le notebook Databricks sur Azure et j'avais un notebook Pyspark parfaitement parfait qui avait bien fonctionné toute la journée d'hier. Mais à la fin de la journée, j'ai remarqué que j'obtenais une erreur étrange sur le code dont je savais qu'il fonctionnait auparavant: org.apache.spark.SparkException: Job abandonné en raison d'un échec d'étape: Tâche de l'application

Mais comme il était tard, je l'ai laissé jusqu'à aujourd'hui. Aujourd'hui, j'ai essayé de créer un nouveau cluster et d'exécuter le code et cette fois, cela ne cesse de dire que mon travail a été "annulé"

En fait, j'ai juste essayé d'exécuter une seule ligne de code:

OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
/databricks/python/lib/python3.5/site-packages/IPython/config/loader.py:38: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package.
  from IPython.utils.traitlets import HasTraits, List, Any, TraitError
Fri Jan  4 16:51:08 2019 py4j imported
Fri Jan  4 16:51:08 2019 Python shell started with PID  2543  and guid  86405138b8744987a1df085e4454bb5d
Could not launch process The 'config' trait of an IPythonShell instance must be a Config, but a value of class 'IPython.config.loader.Config' (i.e. {'HistoryManager': {'hist_file': ':memory:'}, 'HistoryAccessor': {'hist_file': ':memory:'}}) was specified. Traceback (most recent call last):
  File "/tmp/1546620668035-0/PythonShell.py", line 1048, in <module>
    launch_process()
  File "/tmp/1546620668035-0/PythonShell.py", line 1036, in launch_process
    console_buffer, error_buffer)
  File "/tmp/1546620668035-0/PythonShell.py", line 508, in __init__
    self.shell = self.create_shell()
  File "/tmp/1546620668035-0/PythonShell.py", line 617, in create_shell
    ip_shell = IPythonShell.instance(config=config, user_ns=user_ns)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/config/configurable.py", line 412, in instance
    inst = cls(*args, **kwargs)
  File "/databricks/python/lib/python3.5/site-packages/IPython/terminal/embed.py", line 159, in __init__
    super(InteractiveShellEmbed,self).__init__(**kw)
  File "/databricks/python/lib/python3.5/site-packages/IPython/terminal/interactiveshell.py", line 455, in __init__
    super(TerminalInteractiveShell, self).__init__(*args, **kwargs)
  File "/databricks/python/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 622, in __init__
    super(InteractiveShell, self).__init__(**kwargs)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/config/configurable.py", line 84, in __init__
    self.config = config
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 583, in __set__
    self.set(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 557, in set
    new_value = self._validate(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 589, in _validate
    value = self.validate(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 1681, in validate
    self.error(obj, value)
  File "/databricks/python/lib/python3.5/site-packages/traitlets/traitlets.py", line 1528, in error
    raise TraitError(e)
traitlets.traitlets.TraitError: The 'config' trait of an IPythonShell instance must be a Config, but a value of class 'IPython.config.loader.Config' (i.e. {'HistoryManager': {'hist_file': ':memory:'}, 'HistoryAccessor': {'hist_file': ':memory:'}}) was specified.

et même cela a été annulé.

Modifier:

Voici le journal des erreurs std d'Azure:

filePath = "/SalesData.csv"


0 commentaires

4 Réponses :


0
votes

Ok, j'ai fini par créer un autre nouveau cluster et il semble maintenant fonctionner. La seule chose que j'ai faite différemment, c'est que dans le cluster précédent, j'ai défini le nombre maximal de nœuds qu'il pouvait augmenter jusqu'à 5. Cette fois, je l'ai laissé par défaut de 8.

Cependant, je ne sais pas si c'est vraiment ce qui a fait la différence. Esp. étant donné que les erreurs d'hier étaient sur un cluster qui fonctionnait auparavant correctement. Ou que l'erreur d'aujourd'hui consistait à exécuter un code très simple.


0 commentaires

0
votes

il semble que votre cluster soit entré dans un mauvais état et qu'il devait être redémarré. Parfois, le service VM sous-jacent peut également échouer et vous devez lancer un nouveau cluster avec de nouveaux nœuds. Si vous ne parvenez pas à exécuter le code définitivement, commencez par redémarrer le cluster.


1 commentaires

Hmm, cela se produit encore aujourd'hui avec un cluster que j'ai arrêté hier et redémarré aujourd'hui. Commençant à devenir ennuyeux.



1
votes

Mon équipe et moi avons rencontré ce problème après avoir installé le package Python azureml ['notebooks'] dans notre cluster. L'installation a semblé fonctionner, mais nous avons reçu le message "Annulé" en essayant d'exécuter une cellule de code.

Nous avons également reçu une erreur dans notre journal similaire à celle de ce message:

The 'config' trait of an IPythonShell instance must be a Config, 
  but a value of class 'IPython.config.loader.Config'...


0 commentaires

0
votes

Semble avoir un problème avec la version du package IPython installée. Ce qui nous a résolu, c'est la rétrogradation de la version IPython:

Clusters (volet de gauche)> Cliquez sur votre cluster> Bibliothèques> Installer nouveau> PyPi> dans le champ "Package", écrivez: "ipython == 3.2.3"> Installer

Ensuite, redémarrez votre cluster.

De plus, Databricks semble avoir un autre problème similaire avec le paquet NumPy, qui nous est arrivé après avoir corrigé l'IPython. Si cela vous arrive aussi, essayez de passer à numpy == 1.15.0 de la même manière que vous l'avez fait avec IPython.


0 commentaires