Получение последней версии объекта из корзины s3a - PullRequest
0 голосов
/ 04 июня 2019

Есть ли способ получить последнюю версию объекта из корзины с поддержкой версий s3, используя соединитель s3a, с помощью hadoop cli?

1 Ответ

0 голосов
/ 12 июня 2019

Если вы загрузите и соберете магистраль hadoop (т.е. последнюю версию), вы можете в своем собственном списке кодов вызвать fs.getFileStatus(filepath) (где FS - файловая система из FileSystem.get () по пути s3a), а затем зарегистрировать, что вы Вы увидите значения: теперь мы включим его, и тег etag в классе S3AFileStatus и его toString() напечатает его.

В Hadoop 3.1 + вы можете получить значение etag из fs.getFileChecksum, при условии, что ваша конфигурация приложения установила для "fs.s3a.etag.checksum.enabled" значение true (длинный рассказ). Это в HDP-3.0 и, вероятно, CDH 6.2 тоже. Там нет версии, но если вы знаете etag, вы можете проверить.

Что касается того, является ли он "самым последним", помните, что мы получаем в конечном итоге непротиворечивые списки: мы перечисляем то, что дает нам s3, и если вы перезаписываете файл более новой версией, мы можем получить либо обратно в список. Что делает версионирование, так это гарантирует, что при перезаписи / удалении вы все равно сможете восстановить старое (инструментальные средства AWS) и для S3A в будущей версии Hadoop, чтобы мы могли защититься от того, кто обновляет файл, пока вы его читаете - вы ' всегда получит версию, с которой вы начали, даже если она была перезаписана

...