Ich habe einen benutzerdefinierten Partitionierer geschrieben. Wenn die Anzahl der Reduzierungsaufgaben größer als 1 ist, schlägt der Job fehl. Dies ist die Ausnahme, die ich bekomme:
%Vor%Der Code, den ich geschrieben habe, ist
%Vor% Dies ist die key.hashCode()
gleich -719988079
und mod dieses Wertes gibt -1
zurück.
Schätzen Sie Ihre Hilfe dazu. Danke.
Eine Warnung zur Verwendung von:
%Vor% Wenn Sie den Fall treffen, in dem key.hashCode()
gleich Integer.MIN_VALUE
ist, erhalten Sie immer noch einen negativen Partitionswert. Es ist eine Kuriosität von Java, aber Math.abs(Integer.MIN_VALUE)
gibt Integer.MIN_VALUE
zurück (wie in -2147483648). Sie sind sicherer, wenn Sie den Absolutwert des Moduls wie folgt verwenden: