Согласно странице архитектуры HDFS, HDFS была разработана для «потокового доступа к данным». Я не уверен, что именно это означает, но предполагаю, что это означает, что такая операция, как поиск, либо отключена, либо имеет неоптимальную производительность. Было бы это правильно?
Меня интересует использование HDFS для хранения аудио / видео файлов, которые необходимо передать клиентам браузера. Большинство потоков будут от начала до конца, но некоторые могут иметь большое количество поисков.
Может быть, есть другая файловая система, которая могла бы сделать это лучше?
HDFS хранит данные большими блоками - например, 64 МБ. Идея состоит в том, что вы хотите, чтобы ваши данные были последовательно размещены на вашем жестком диске, что уменьшит количество поисков, которые ваш жесткий диск должен выполнять для чтения данных.
Кроме того, HDFS - это файловая система в пространстве пользователя, поэтому существует единственный центральный узел имени, который содержит каталог в памяти, в котором все блоки (и их реплики) хранятся в кластере. Ожидается, что файлы будут большими (скажем, 1 ГБ или более) и разделены на несколько блоков. Чтобы прочитать файл, код запрашивает у узла имени список блоков, а затем последовательно читает блоки.
Данные передаются с жесткого диска в поток, поддерживая максимальную скорость ввода-вывода, которую диск может поддерживать для этих больших блоков данных.
Потоковая передача просто означает, что она может предложить вам постоянный битрейт выше определенного порога при передаче данных, в отличие от того, чтобы данные приходили пачками или волнами.
Если HDFS предназначена для потоковой передачи, она, вероятно, по-прежнему будет поддерживать поиск с небольшими накладными расходами, необходимыми для кэширования данных для постоянного потока.
Конечно, в зависимости от загрузки системы и сети ваши поиски могут занять немного больше времени.
Для потоковой передачи данных с Hadoop: полное руководство, третье издание:
HDFS построена на идее, что наиболее эффективным шаблоном обработки данных является шаблон с однократной записью и многократным чтением. Набор данных обычно создается или копируется из источника, а затем с течением времени для этого набора данных выполняются различные анализы. Каждый анализ будет включать большую часть, если не весь, набора данных, поэтому время для чтения всего набора данных более важно, чем задержка при чтении первой записи.