Я новичок в Hadoop, и мне удалось просто запустить пример wordCount:http://hadoop.apache.org/common/docs/r0.18.2/mapred_tutorial.html
Предположим, у нас есть папка с 3 файлами. Я хочу иметь по одному мапперу для каждого файла, и этот маппер просто подсчитает количество строк и вернет их редюсеру.
Затем редуктор примет в качестве входных данных количество строк из каждого преобразователя и выдаст в качестве вывода общее количество строк, которые существуют во всех трех файлах.
Итак, если у нас есть следующие 3 файла
input1.txt
input2.txt
input3.txt
и преобразователи возвращают :
mapper1 -> [input1.txt, 3]
mapper2 -> [input2.txt, 4]
mapper3 -> [input3.txt, 9]
, редуктор выдаст результат
3+4+9 = 16
Я сделал это в простом приложении Java, поэтому я хотел бы сделать это в Hadoop. У меня всего 1 компьютер, и я хотел бы попробовать запустить его в псевдораспределенной среде.
Как я могу добиться этого? Какие правильные шаги я должен сделать?
Должен ли мой код выглядеть так, как в примере от apache? У меня будет два статических класса, один для картографа, один для редуктора? или у меня должно быть 3 класса, по одному для каждого маппера?
Если вы можете помочь мне с этим, я понятия не имею, как это сделать, и я верю, что если мне удастся написать какой-нибудь код, который делает это, то я смогу написать более сложное приложение в будущем.
Спасибо!