У меня есть образец входного файла, как показано ниже, который содержит порядковый номер, имя, медицину, пол, потраченное количество. Мое требование состоит в том, чтобы получить общую сумму, потраченную на каждое лекарство. Я написал программу Mapreduce и запустил ее на своей локальной машине в кластере с одним узлом с Hadoop и другими необходимыми пакетами.Похоже, что метод редуктора не работает в моем классе Reducer
- Ирма Эллисона, Avil, женщина, 872
- Хилари Буш, Avil, мужчина, 999
- Ахмед Мехия, парацетамол, женщина, 654
- Грейс Boone, метацин, женщина, 918
- Hayes Ortiz, парацетамол, мужчина, 734
- Лани Matthews, парацетамол, женщина, 836
- Кэтлин Стюарт, парацетамол, мужчина, 178
- Jonas Boone, метацин, женщина, 649
- Дезире Пирсон, Avil, мужчина, 439
- Britanney Sullivan, метацин, женщина, 659
для вышеприведенного входа я жду выход, как показано ниже.
avil 2310
metacin 2226
paracetamol 2402
Когда я объявляю свой класс редуктор, как
общественного класса VisReducer расширяет Reducer < текст, IntWritable, Текст, IntWritable>. Я получаю ожидаемый результат, и все выглядит хорошо.
Но по ошибке я изменил свой класс Редуктор декларацию
общественного класса VisReducer расширяет Reducer < текст, Iterable < IntWritable>, текст, IntWritable>. Вывод, кажется, всего лишь выход Mapper и по какой-то причине выглядит, метод уменьшения в классе Reduceer не запускается. Я добавил метод System.out.println() в методе уменьшения и проверил журналы и не смог увидеть, что я напечатал. Если в первом случае я вижу результат. Я не могу понять, что вызывает проблему.
Может кто-нибудь помочь мне понять, что именно происходит.
Выход в моем втором корпусе.
avil 439
avil 999
avil 872
metacin 659
metacin 649
metacin 918
paracetamol 178
paracetamol 836
paracetamol 734
paracetamol 654
Это может быть очень простой вопрос, как я только начинал свое обучение Hadoop и не смогли найти соответствующие quetions онлайн.
Отправьте свой код драйвера. –