У меня заканчивается минутный выпуск.
Я пытаюсь получить другой файл для разных ключей от Reducer.
Разделитель
public class customPartitioner extends Partitioner<Text, NullWritable> implements
Configurable {
private Configuration configuration;
@Override
public Configuration getConf() {
return configuration;
}
public int getPartition(Text key, NullWritable value, int numPartitions) {
return Math.abs(key.hashCode()) % numPartitions;
}
}
И я установил следующее в своем классе драйверов
job0.setPartitionerClass(customPartitioner.class);
job0.setNumReduceTasks(5);
Для редуктора у меня 5 ключей
[3, 0, 5, 8, 12]
Поэтому мне нужно получить 5 разных файлов.
Но как только я запускаю этот код, я получаю 5 файлов частей, но результаты не ожидаются.
ВЫВОД
Found 6 items
-rw-r--r-- 3 sreeveni root 0 2015-12-09 11:44 /OUT/Part/OUT/_SUCCESS
-rw-r--r-- 3 sreeveni root 0 2015-12-09 11:44 /OUT/Part/OUT/part-r-00000
-rw-r--r-- 3 sreeveni root 4 2015-12-09 11:44 /OUT/Part/OUT/part-r-00001
-rw-r--r-- 3 sreeveni root 0 2015-12-09 11:44 /OUT/Part/OUT/part-r-00002
-rw-r--r-- 3 sreeveni root 4 2015-12-09 11:44 /OUT/Part/OUT/part-r-00003
-rw-r--r-- 3 sreeveni root 3 2015-12-09 11:44 /OUT/Part/OUT/part-r-00004
В том, что 2 файла пусты, а другой содержит
sreeveni@machine10:~$ hadoop fs -cat /OUT/Part/OUT/part-r-00001
3
8
sreeveni@machine10:~$ hadoop fs -cat /OUT/Part/OUT/part-r-00003
0
5
sreeveni@machine10:~$ hadoop fs -cat /OUT/Part/OUT/part-r-00004
12
Почему 2 ключа приходят под один файл?
Я делаю какую-либо ошибку в своем коде? Пожалуйста помоги