Spark чтение файлов из ADLS gen1 - PullRequest
       46

Spark чтение файлов из ADLS gen1

0 голосов
/ 14 октября 2019

У меня есть процесс, который записывает (перезаписывает существующие файлы) в каталог ADLS Gen1, а затем другой процесс, который запускает задание на спарк для чтения последних перезаписанных файлов.

Кажется, что в большинстве случаев искране читает последние обновленные файлы. После создания некоторой задержки (30–60 с) для второго процесса для чтения файлов он, кажется, работает.

Каков наилучший подход для решения этой проблемы без каких-либо задержек?

Ценю обратную связь.

1 Ответ

0 голосов
/ 23 октября 2019

Основываясь на документах , которые я искал в HDFS, блокировка записи не препятствует прочтению других клиентов. См. Следующие утверждения:

Авторы должны получить эксклюзивную блокировку дляфайл, прежде чем им будет разрешено записывать / добавлять / усекать данные в этих файлах. Примечательно, что эта эксклюзивная блокировка НЕ ​​мешает другим клиентам читать файл (таким образом, клиент может писать файл, и в то же время другой может читать тот же файл).

Итак,Мое мнение таково: если что-то записано в файл, который требует некоторого времени, некоторая задержка в согласованности чтения неизбежна.


Если вы хотите убедиться в строгой согласованности чтения (не хотитеклиент читает гистерезисные данные) Я пытаюсь предоставить обходной путь для вашей справки: добавление базы данных Redis перед вашими операциями записи и чтения!

Независимо от того, когда вы выполняете операции чтения или записи, сначала, пожалуйста, судите, существует ли конкретныйвведите в базу данных Redis. Если нет, напишите набор ключей в Redis. Затем выполните обработку бизнес-логики. Наконец, не забудьте удалить ключ.

Хотя это может быть немного громоздко или сказываться на производительности, я думаю, что она может удовлетворить ваши потребности. Кстати, учитывая, что бизнес-логика может давать сбой или давать сбой, так что ключ никогда не будет выпущен, вы можете добавить параметр TTL при создании ключа, чтобы избежать этой ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...