Napisałem niestandardowy program do partycjonowania. Kiedy mam liczbę zadań redukcji większych niż 1, zadanie się nie udaje. Jest to wyjątek, który dostaję:Jak naprawić błąd "Nielegalna partycja" w hadoopie?
java.io.IOException: Illegal partition for [email protected] (-1)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:930)
at org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:499)
kod, który napisałem jest
public int getPartition(weburl_compositeKey key, Text value, int numPartitions)
{
return (key.hashCode()) % numPartitions;
}
to, że key.hashCode()
równa -719988079
i mod tej wartości wraca -1
.
Doceń swoją pomoc w tej sprawie. Dzięki.
Wielkie dzięki. Zadziałało :) – Maverick
@SumanBharadwaj Nie ma za co! Proszę oznaczyć odpowiedź jako zaakceptowaną. Dzięki :) – harpun
To pytanie otrzymało 3 odpowiedzi - dwie prawidłowe i jedna niepoprawna. Szkoda, że jedyny niewłaściwy otrzymał najlepszy wynik i zaakceptowany znak odpowiedzi. –