2017-07-22 3 views
0

J'ai plusieurs jobs Spark incluant des jobs batch et des jobs Stream pour traiter le journal système et les analyser. Nous utilisons Kafka comme pipeline pour connecter chaque travail. Une fois la mise à niveau vers Spark 2.1.0 + Spark Kafka Streaming 010, j'ai trouvé que certaines tâches (lot ou streaming) étaient lancées au-dessous des exceptions de façon aléatoire (soit après plusieurs heures d'exécution, soit en 20 minutes). Quelqu'un peut-il me donner quelques suggestions sur la façon de comprendre la vraie cause? (On dirait qu'il y a beaucoup de messages qui en discutent, mais la solution ne me semble pas très utile ...)Échec du job Spark dû au fichier Not found lors du shuffle par intermittence

Est-ce dû à un problème de configuration de Spark ou à un bug de code? Je ne peux pas coller tous mes codes d'emplois car il y en a trop.

00: 30: 04510 WARN - 17/07/22 00:30:04 WARN TaskSetManager: Lost tâche 60,0 au stade 1.518.490,0 (TID 338070, 10.133.96.21, exécuteur 0): java.io.FileNotFoundException:/mnt/mesos/rep_travail/esclaves/20160924-021501-274760970-5050-7646-S2/frameworks/40aeb8e5-e82a-4df9-b034-8815a7a7564b-2543/executors/0/runs/fd15c15d-2511-4f37-a106-27431f583153 (Aucun fichier ou répertoire) 00: 30: 04,510 WARN - at java.io.FileOutputStream. open0 (méthode native) 00: 30: 04,510 WARN - à java.io.FileOutputStream.open (FileOutputStream.java:270) 00: 30: 04,510 WARN - à java.io.FileOutputStream. (FileOutputStream.java:213) 00: 30: 04,510 WARN - à java.io.FileOutputStream. (FileOutputStream.java:162) 00: 30: 04,510 WARN - à org.apache.spark.shuffle.IndexShuffleBlockResolver.writeIndexFileAndCommit (IndexShuffleBlockResolver.scala: 144) 00: 30: 04,510 WARN - à org.apache.spark.shuffle.sort.BypassMergeSortShuffleWriter.write (BypassMergeSortShuffleWriter.java:128) 00: 30: 04,510 WARN - à org.apache.sparkuler.ShuffleMapTask.runTask (ShuffleMapTask .scala: 96) 00: 30: 04,510 WARN - à org.apache.sparkuler.ShuffleMapTask.runTask (ShuffleMapTask.scala: 53) 00: 30: 04,510 WARN - à org.apache.spark.scheduler.Task .run (Task.scala: 99) 00: 30: 04,510 WARN - à org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 282) 00: 30: 04,510 AVERTISSEMENT - à java.util .concurrent.ThreadPoolExe WARN - at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) 00: 30: 04,510 WARN - at java.lang. Thread.run (Thread.java:748)

Répondre

0

J'ai trouvé la cause principale finalement. Il n'y a aucun problème avec les Jobs Spark. Nous avons un crontab qui nettoie incorrectement le stockage temporaire dans/mnt et supprime incorrectement les fichiers de cache d'étincelles.