Должны ли Hadoop иметь входные файлы? Могу ли я загружать локальные файлы напрямую?

Фон: Моя программа была разработана в автономной среде с использованием C ++, и теперь мне нужно развернуть ее на Hadoop, поэтому я выбираю технологию потоковой передачи Hadoop (также и Hadoop pipe). Входные данные представляют собой несколько очень больших двоичных потоковых файлов, которые захватываются Wireshark (пакет, формат pcap), мне нужно сделать анализ потока. Если я открываю один из файлов в шестнадцатеричном формате, это выглядит так:

D4 C3 B2 A1 02 00 04 00  00 00 00 00 00 00 00 00
FF FF 00 00 01 00 00 00  E9 EA 9F 4F A9 1C 07 00
59 00 00 00 59 00 00 00  94 0C 6D 7A AD 3A 00 0C
29 F5 60 C8 08 00 45 00  00 4B FA BB 00 00 80 11
A9 61 C0 A8 30 69 77 93  2D E0 0F A0 1F 40 00 37
0C 70 02 21 07 00 58 28  98 22 5C B0 03 02 00 00
00 01 01 01 00 00 64 86  2B A2 02 8A 1A 68 EA 92

Проблема: На hadoop форматом входных файлов по умолчанию является TextInputFormat, но мне нужно обрабатывать двоичные файлы. Как я знаю, Hadoop также может обрабатывать двоичные файлы с помощью SequenceFileInputFormat, но я не знаю, что такое пара «ключ, значение» в настоящее время? У меня есть другая идея: нет входных файлов на Hadoop Streaming, но загружать локальные двоичные потоковые файлы в качестве входных данных (используя опцию -files), а затем с помощью fopen («потоковый файл») в программе Mapper, чтобы открыть каждый из потоковых файлов для обработки. Если это так, нет необходимости полностью менять мою автономную программу, но мой вопрос: каждый ли подчиненный узел все еще полезно? будет ли главный узел назначать такую ​​задачу каждому подчиненному узлу равномерно (будет ли процесс назначен каждому подчиненному узлу для его обработки?), похоже, что это не Hadoop. Есть ли еще лучшая идея? Заранее спасибо.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]