EMR — Искра, создающая случайно поврежденные файлы parquet snappy — FAILED_TO_UNCOMPRESS

#apache-spark #amazon-emr

Вопрос:

У нас есть несколько заданий (у которых нет общего кода, кроме Spark lib), которые пишут быстрые файлы parquet. Случайно некоторые файлы повреждены. Задание по написанию этих файлов не завершается неудачно и не вызывает особых ошибок.

В большинстве случаев задание записывает файлы не поврежденными, но иногда оно записывает поврежденные файлы, и задание не завершается неудачно. Таким образом, мы знаем, что файлы повреждены только тогда, когда пытаемся их прочитать.

Таким образом: невозможно легко воспроизвести (очень случайно и редко) и нет ошибок, связанных с повреждением в задании, которое записывает файлы.

Когда мы пытаемся прочитать эти файлы, у нас есть:

  • С Помощью Паркетных Инструментов:

Ошибка операционной системы: Ошибка ввода-вывода: Поврежденные сжатые данные.

  • Искра:

Вызвано: java.io.IOException: не удалось прочитать страницу страницы [байт.размер=1048612, количество значений=58058, несжатый размер=1048612] в col [client_id] необязательный двоичный идентификатор клиента (UTF8) в org.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader.readPageV1(VectorizedColumnReader.java:618) в org.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader.access$000(VectorizedColumnReader.java:49) в org.apache.spark.sql.execution.datasources.parquet.VectorizedColumnReader$1.visit(VectorizedColumnReader.java:547) … еще 44 Вызвано: Исключение java.io.IOException: НЕ УДАЛОСЬ выполнить СЖАТИЕ(5)

  • С Афиной:

GENERIC_INTERNAL_ERROR: Неправильный ввод: смещение=259867

Задания работали нормально весь прошлый год, и у нас есть эти ошибки с 5 ноября, с тех пор мы не пересылали наш кластер EMR и код заданий.

Наш стек:

 emr 5.31.0 Spark 2.4.6 openjdk 1.8.0_302 EMRFS consistent view:Disabled   

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