Size: a a a

2019 December 10

A

Alexey in Data Engineers
Simon Osipov
Можно и так сказать) я именно такой вопрос и задал интервьюерам: "в какой задаче вашим дата инженерам требуется знание как ходить по дереву?"

Внятного ответа не получил от них, поэтому решил спросить)
Семен, привет!

Ровно на этот вопрос следующая книжка не ответит. Но там есть очень много интересных кейсов (War Stories) с толикой юмора про использование алгоритмов для решения реальных задач, рекомендую посмотреть:

The Algorithm Design Manual
by Steven S S. Skiena
источник

A

Aleksandr in Data Engineers
Alex
@salatiques самый простой способ это глянуть чем занимаются потоки на воркерах в данный момент

сидят они на jdbc, на генерации паркета, или может у вас там ещё что весёлое есть
кажется, нащупал аномалию - почему-то последняя таска в логах пишет
"Records Read": 5285440

при этом у остальных по 10-15к записей
источник

А

Алексей in Data Engineers
Привет, подскажите. Подключился через spark steaming 2.3 к kafka и пишу в hdfs в формате orc. Получается очень много мелких файлов. Как уменьшить их число? Можно как то буферизировать в спарке и писать пачками или только делать периодически coalesce orc файлам? Или может есть более верный вариант, чем писать в hdfs?
источник

AZ

Anton Zadorozhniy in Data Engineers
Алексей
Привет, подскажите. Подключился через spark steaming 2.3 к kafka и пишу в hdfs в формате orc. Получается очень много мелких файлов. Как уменьшить их число? Можно как то буферизировать в спарке и писать пачками или только делать периодически coalesce orc файлам? Или может есть более верный вариант, чем писать в hdfs?
если вы будете буферизовать на спарке то это наверное не очень хорошо скажется на отказоуйстойчивости; каноничными являются два способа: 1) приземлять из кафки не спарком а нормальный приземлятором который делает большие красивые файлы и 2) писать спарком маленькие и потом их укрупнять когда условная партиция закрыта, хотя бы alter table concatenate
источник

AZ

Anton Zadorozhniy in Data Engineers
если у вас в спарке есть логика, а не просто приземление из кафки, то для первого сценария ваш спарковый джоб должен писать в другой топик, и его уже приземлять
источник

S

Stanislav in Data Engineers
Anton Zadorozhniy
если вы будете буферизовать на спарке то это наверное не очень хорошо скажется на отказоуйстойчивости; каноничными являются два способа: 1) приземлять из кафки не спарком а нормальный приземлятором который делает большие красивые файлы и 2) писать спарком маленькие и потом их укрупнять когда условная партиция закрыта, хотя бы alter table concatenate
а что за нормальные приземляторы?
источник

AZ

Anton Zadorozhniy in Data Engineers
Stanislav
а что за нормальные приземляторы?
что-то вроде kafka connect, ну или то что под конкретные требования написано
источник

А

Алексей in Data Engineers
Я пока пробую делать concatenate, но когда идёт операция в стриме можно словить ошибку записи. Запись перезапустится или можно объединять только закрытые данные?
источник

S

Stanislav in Data Engineers
Anton Zadorozhniy
что-то вроде kafka connect, ну или то что под конкретные требования написано
ну вот, а я размечтался
пока что либрдкафка наше все
источник

S

Stanislav in Data Engineers
Алексей
Я пока пробую делать concatenate, но когда идёт операция в стриме можно словить ошибку записи. Запись перезапустится или можно объединять только закрытые данные?
комить офсет после записи
источник

AZ

Anton Zadorozhniy in Data Engineers
Алексей
Я пока пробую делать concatenate, но когда идёт операция в стриме можно словить ошибку записи. Запись перезапустится или можно объединять только закрытые данные?
лучше объединять закрытые
источник

AZ

Anton Zadorozhniy in Data Engineers
Stanislav
ну вот, а я размечтался
пока что либрдкафка наше все
это просто библиотека же
источник

А

Алексей in Data Engineers
А что если писать не на диск, а в бд с более мелким размером блока (hbase?)? Или так не делают?
источник

AZ

Anton Zadorozhniy in Data Engineers
Алексей
А что если писать не на диск, а в бд с более мелким размером блока (hbase?)? Или так не делают?
это тоже самое что писать в кафку, вы можете коммитить мелкими порциями
источник

S

Stanislav in Data Engineers
Anton Zadorozhniy
это просто библиотека же
про то и речь :(
источник

S

Stanislav in Data Engineers
Алексей
А что если писать не на диск, а в бд с более мелким размером блока (hbase?)? Или так не делают?
почему не читать не потоком, а батчами?
источник

S

Stanislav in Data Engineers
дождитесь пока накопится данных на размер блока
источник

S

Stanislav in Data Engineers
спарк - не про лейтанси
источник

А

Алексей in Data Engineers
ForeachBatch? Он не с 2.4?
источник

S

Stanislav in Data Engineers
Алексей
ForeachBatch? Он не с 2.4?
нет, просто стартофсет и эндофсет
их хранить в хдфс, комитить при успешной записи
источник