Задание продолжает сбой с загадочным сообщением об ошибке: «org.xerial.snappy.SnappyIOException: [EMPTY_INPUT] Невозможно распаковать пустой поток» - как отладить? - PullRequest
0 голосов
/ 04 марта 2019

Я использую pyspark-2.4.0, и большая работа продолжает зависать со следующим сообщением об ошибке (при сохранении в паркет или при попытке собрать результат):

py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o2495.collectToPython.: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 184 на этапе 290.0 не выполнено 4 раза, последний сбой: потерянное задание 184.3 на этапе 290.0 (TID 17345, 53.62.154.250, исполнитель 5): org.xerialИсключениеИскры.209) в org.apache.spark.storage.BlockManager $$ anonfun $ getRemoteValues ​​$ 1.apply (BlockManager.scala: 698) в org.apache.spark.storage.BlockManager $$ anonfun $ getRemoteValues ​​$ 1.apply (BlockManager.scala:696) по адресу scala.Option.map (Option.scala: 146) по адресу org.apache.spark.storage.BlockManager.getRemoteValues ​​(BlockManager.scala: 696) в org.apache.spark.storage.BlockManager.get (BlockManager.scala: 820) в org.apache.spark.storage.BlockManager.getOrElseUpdate (BlockManager.scala: 875) в org.apache.spark.rdd.RDD.getOrCompute (RDD.scala: 335) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 286) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 52) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 52) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 52) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD..scala: 288) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 52) в org.apache.spark.rdd.RDD.computeOrReadCheckуказать (RDD.scala: 324) на org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) на org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 52) на org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDala.: 52) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в org.apache.spark.rdd.MapPartitionsRDD.compute (MapPartitionsRDD.scala: 52) в org.apache.spark.rdd.RDD.computeOrReadCheckpoint (RDD.scala: 324) в org.apache.spark.rdd.RDD.iterator (RDD.scala: 288) в org.apache.spark..scala: 121) at org.apache.spark.executor.Executor $ TaskRunner $$ anonfun $ 10.apply (Executor.scala: 402) в org.apache.spark.util.Utils $ .tryWithSafeFinally (Utils.scala: 1360) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 408) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748)

Моя проблема в том, что я не знаю, какая операция вызывает проблему.Сообщение об ошибке не дает никаких указаний по этому поводу, и трассировка стека не содержит никакого моего пользовательского кода.

Есть идеи, что может вызвать это, или как я могу найти, где именно работа продолжает терпеть неудачу?

1 Ответ

0 голосов
/ 07 мая 2019

Я наткнулся на ссылку при поиске в Интернете: http://mail-archives.apache.org/mod_mbox/spark-issues/201903.mbox/%3CJIRA.13223720.1553507879000.125409.1553586300107@Atlassian.JIRA%3E

Сводка этого:

Spark 2.4 use 1.1.7.x snappy-java, but its behavior is different from 1.1.2.x 
which is used in Spark 2.0.x. SnappyOutputStream in 1.1.2.x version always writes a snappy 
header whether or not to write a value, but SnappyOutputStream in 1.1.7.x don't generate 
header if u don't write value into it, so in spark 2.4 if RDD cache a empty value, 
memoryStore will not cache any bytes ( no snappy header ), then it will throw the empty 
error. 

Также, если вы найдете решение (кроме понижения Spark до 2.0v), сообщите нам об этом здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...