Я читал код Hadoop и нашел эту строку в разделителе.
(key.hashCode() & Integer.MAX_VALUE) % numReduceTasks
Почему они используют побитовое И?
Для удаления знакового бита.в случае, если хэш-код является отрицательным числом.это как Math.abs(key.hashCode())
Math.abs(key.hashCode())