DATA_ENGINEERETTE Telegram 353
Committers in Spark

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

File Output Committer

v1

"spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version" = 1


Сначала все файлы пишутся во временные папки в attempt/, потом перекладываются (по сути rename) в task/ и в самом конце в корень вашей папки. Тут упор на надежность: если что-то упало, то оно перезапустится и не попадет в конечную папку, пока не отработает

v2

"spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version" = 2


Здесь файлы пишутся в attempt/, а потом сразу перемещаются в корень вашей папки. Тут упор на производительность: нет дополнительного шага, но если что-то пойдет не так, то останутся куски файлов

S3A Committers

Для работы с s3 есть magic и staging. Предыдущие не подходят, т.к. переименование реализовано как копирование и удаление. И если файлов много, то это очень долгая операция

magic

"spark.hadoop.fs.s3a.committer.name" = "magic"
"spark.hadoop.fs.s3a.committer.magic.enabled" = "true"


Файлы пишутся сразу в корень, но облако должно быть консистентным. Появился в конце 2021

staging

С ним я не игралась, но суть в том, что сами файлы пишутся в стейджинг на hdfs (отсюда и название), а потом грузятся в s3

_SUCCESS

Возможно, вы когда-нибудь заглядывали в файл _SUCCESS. Если писать алгоритмами v1/v2, то он будет пустым. А вот пример с magic:

{
"name" : "org.apache.hadoor.fs.3a.commit. files.SuccessData/1",
"timestamp" : 1744183768995,
"date" : "Wed Apr 09 10:29:28 MSK 2025",
"committer" : "magic",
"description" : "Task committer attempt_202504091019345870801396712503545_6660_m_1000000_0",
"metrics" : {
"stream_write_block_uploads" : 0,
"files_created" : 1,
"stream_closed" : 200,
...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥204



tgoop.com/data_engineerette/353
Create:
Last Update:

Committers in Spark

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

File Output Committer

v1

"spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version" = 1


Сначала все файлы пишутся во временные папки в attempt/, потом перекладываются (по сути rename) в task/ и в самом конце в корень вашей папки. Тут упор на надежность: если что-то упало, то оно перезапустится и не попадет в конечную папку, пока не отработает

v2

"spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version" = 2


Здесь файлы пишутся в attempt/, а потом сразу перемещаются в корень вашей папки. Тут упор на производительность: нет дополнительного шага, но если что-то пойдет не так, то останутся куски файлов

S3A Committers

Для работы с s3 есть magic и staging. Предыдущие не подходят, т.к. переименование реализовано как копирование и удаление. И если файлов много, то это очень долгая операция

magic

"spark.hadoop.fs.s3a.committer.name" = "magic"
"spark.hadoop.fs.s3a.committer.magic.enabled" = "true"


Файлы пишутся сразу в корень, но облако должно быть консистентным. Появился в конце 2021

staging

С ним я не игралась, но суть в том, что сами файлы пишутся в стейджинг на hdfs (отсюда и название), а потом грузятся в s3

_SUCCESS

Возможно, вы когда-нибудь заглядывали в файл _SUCCESS. Если писать алгоритмами v1/v2, то он будет пустым. А вот пример с magic:

{
"name" : "org.apache.hadoor.fs.3a.commit. files.SuccessData/1",
"timestamp" : 1744183768995,
"date" : "Wed Apr 09 10:29:28 MSK 2025",
"committer" : "magic",
"description" : "Task committer attempt_202504091019345870801396712503545_6660_m_1000000_0",
"metrics" : {
"stream_write_block_uploads" : 0,
"files_created" : 1,
"stream_closed" : 200,
...

BY дата инженеретта






Share with your friend now:
tgoop.com/data_engineerette/353

View MORE
Open in Telegram


Telegram News

Date: |

Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. Done! Now you’re the proud owner of a Telegram channel. The next step is to set up and customize your channel. Users are more open to new information on workdays rather than weekends. Healing through screaming therapy The SUCK Channel on Telegram, with a message saying some content has been removed by the police. Photo: Telegram screenshot.
from us


Telegram дата инженеретта
FROM American