Spark Aborting S3 Multipart Upload на финальной стадии - PullRequest
0 голосов
/ 07 октября 2019

Я пытался записать Spark Dataset в файл паркета на корзине S3, используя S3ACommitters, предоставленные cloudera / hortonworks, по ссылке ниже

https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.1.4/bk_cloud-data-access/content/enabling-directory-committer-spark.html

Поэтому я добавил нижеКонфигурация в мой файл spark-defaults.conf

spark.hadoop.fs.s3a.committer.name partitioned
spark.sql.sources.commitProtocolClass org.apache.spark.internal.io.cloud.PathOutputCommitProtocol
spark.sql.parquet.output.committer.class org.apache.spark.internal.io.cloud.BindingParquetOutputCommitter

Однако эти настройки работают в локальном режиме совершенно нормально (каждый работник записывает в каталог tmp, а затем файлы паркетных файлов загружаются в S3 с помощью многоэтапной загрузки, а затем в файл _SUCCESS. создается внутри каталога паркета).

Но когда я запускаю его в автономном кластере;Spark Job успешно завершается, но в S3 Bucket загружаются только файлы _SUCCESS, и я вижу следующие журналы (не могу скопировать вставить реальные журналы)

Aborting all pending commits 
Aborting multipart upload <a-very-long-hash>.snappy.parquet to <s3-bucket-url>
....
.... <same message as above for each partition of parquet file>
....

Я довольно долго бился об этом, ноНе удалось найти что-нибудь полезное из отладки / проверки журналов.

Любая помощь или направление, на которое нужно обратить внимание, очень ценится. Заранее спасибо (PS: Дайте мне знать, если с моей стороны потребуется больше деталей, я буду редактироватьвопрос соответственно)

...