Я прочитал о вторичной сортировке, где необходимо сортировать не только ключ, но и часть значения для каждого из ключей.Вторичная сортировка - оставьте это в каркасе Hadoop или сделайте это самостоятельно в редукторе
Есть два способа сделать это:
- значения кэша в редукторе для каждого ключа и сортировки значений себя
- Оставить работу в рамках Hadoop, указав пользовательский компаратор, Разметка ... все что вам нужно включить не только сортировку по ключу, но и по значению
Мой вопрос в том, когда вы порекомендуете сначала и когда второй подход?
Как я сейчас вижу - если фреймворк уже выполняет сортировку, почему бы не отсортировать его по ключу и значению в одно и то же время ... пожалуйста, исправьте меня, если есть какой-то побочный эффект. Например, что должно быть быстрее?
Я понимаю, что самая большая проблема «сортировки по-редуктору» - это количество записей, но я хотел бы получить всю картину.
Но есть ли разница в производительности? Кажется также более эффективным (быстрее) использовать Hadoop framework, поскольку он уже выполняет сортировку ... это действительно так? Или есть какая-то причина, по которой сортировка сокращений может быть быстрее? Я понимаю, что есть накладные расходы при написании дополнительного кода, но я готов это сделать, если он окупится. – Marko
Вторичная сортировка эффективна, надежна и проста, насколько я заметил.Производительность хороша с секретной сортировкой, поскольку большая часть сортировки выполняется фоновым потоком в редукторе во время фазы перетасовки/сортировки, а методу reduce() не требуется тратить память и загрузку выполнения для сортировки значений для каждого ключ, используя коллекции, где он мог бы просто обрабатывать записи по мере их сортировки. – sureshsiva