Я знаю, что здесь были подобные сообщения, но я не могу найти ни одного, у которого действительно есть твердый ответ.
У нас есть кластер Hadoop, загруженный бинарными файлами. Эти файлы могут иметь размер от нескольких сотен тысяч до сотен мегабайт.
В настоящее время мы обрабатываем эти файлы с помощью специальной программы чтения записей, которая считывает все содержимое файла в каждую карту. Оттуда мы извлекаем соответствующие метаданные, которые хотим сериализовать в JSON.
Проблема, которую мы предвидим, заключается в том, что в конечном итоге мы можем достичь размера, с которым не может справиться наш namenode. Памяти не так уж и много, и наличие namenode с парой терабайт памяти кажется нелепым.
Есть ли изящный способ обработки таких больших двоичных файлов? Особенно те, которые нельзя разделить, потому что мы не знаем, в каком порядке редуктор соберет их вместе?