AWS Размер блока S3 для расчета общего числа картографов для рабочей нагрузки куста - PullRequest
0 голосов
/ 30 марта 2020

Хранит ли S3 данные в виде блоков? если да, каков размер блока по умолчанию? Есть ли способ изменить размер блока?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Считается, что существует некоторое разбиение загруженных данных на определенные c блоки, в которые они были загружены - и если вы знали эти значения, читатели могут получить большую пропускную способность. Но, конечно, приложения с открытым исходным кодом куст / spark / mapreduce не знают вызовов API, чтобы найти эту информацию или посмотреть на эти детали. Вместо этого соединитель S3 использует некоторую опцию конфигурации (для s3a: fs.s3a.block.size) для имитации блоков.

Не очень выгодно определять размер блока, если для каждого разбиения требуется запрос HTTP GET для каждого файла для определения разбиения ... это замедлит планирование (последовательных) запросов до того, как задачи с разделенными файлами будут переданы рабочим узлам. HDFS позволяет получить листинг и заблокировать разбиение + местоположение за один вызов API (listLocatedStatus(path)); S3 имеет только вызов списка, чтобы возвратить список (объектов, временных меток, etags) под префиксом (S3 List API v2), так что дополнительная проверка замедлит процесс. Если бы кто-то мог получить эти данные и показать, что это принесет пользу, возможно, это будет достаточно полезно для реализации. На данный момент, вызовы S3AFIleSystem.listLocatedStatus() против S3 просто получают некоторый составленный список разделений блоков по значению fs.s3a.block.size и местоположению (localhost). Всем приложениям известно, что location == localhost означает «что угодно»

0 голосов
/ 30 марта 2020

Размер блока не применим к Amazon S3. Это система хранения объектов, а не виртуальный диск.

...