2016-05-07 5 views
0

Если у меня есть программа командной строки с входом и выходом, как это:Hadoop с бинарными файлами

md5sum < hadoop-2.7.2.tar.gz 
c442bd89b29cab9151b5987793b94041 - 

Как я могу запустить его с помощью Hadoop? Это, как представляется, embarassingly простая задача, но ни одно из решений я пытался не дали правильный вывод:

Может быть, я просто WASN» t правильно следовать инструкциям. Поэтому, пожалуйста, объясните в деталях или укажите хотя бы на полезную документацию.

+0

В чем ваш вопрос? Какую часть Hadoop вы нацеливаете? Вы просто пытаетесь запустить команду Linux для данных, используя mapreduce? –

+0

md5sum является только заполнителем для другой программы с тем же интерфейсом. Он ожидает двоичный вход в целые файлы и создает текстовый вывод. Это будет выполняться на большом количестве файлов (~ 100000 файлов) много раз с небольшими изменениями в настройках программы. Будет необходим кластер, и я хочу использовать Hadoop для распространения задания. Файлы должны храниться в HDFS, и должна быть локализация данных. Итак, да, я просто пытаюсь запустить команду Linux для данных с использованием mapreduce и HDFS. –

+0

Вы можете увидеть [Как прочитать один файл в Hadoop] (http://stackoverflow.com/questions/17875277/reading-file-as-single-record-in-hadoop), за которым следует любой код Java, который вы хотите запустить в этом файле. Если вы не понимаете концепцию mapreduce, то работа и понимание приветствия мирового примера wordcount были бы хорошими. –

ответ

0

Возможно, вы сможете использовать WholeFileInputFormat и hadoop streaming. Проблема, с которой вы можете столкнуться, заключается в том, что если у вас есть огромные файлы, которые вы хотите прочитать полностью, но если у вас есть сильное требование, чтобы весь файл был введен в ваш program, вы должны либо убедиться, что входной сигнал является резонансным, либо найти лучший алгоритм, чтобы полностью охватить разделение и масштабируемость MR.

Смежные вопросы