Я пытался записать 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: Дайте мне знать, если с моей стороны потребуется больше деталей, я буду редактироватьвопрос соответственно)