Слишком много ошибок при загрузке Terasort
У меня есть кластер Hadoop из 8 узлов, где каждый узел имеет 24 физических ядра с Hyper-Threading, таким образом, 48 виртуальных ЦП и 256 ГБ памяти.
Я пытаюсь запустить работу на 6 ТБ в Terasort.
Проблема: Terasort работает без ошибок, когда я использую yarn.nodemanager.resource.cpu-vcores=44 (48 минус 4 для ОС, DN, RM и т. Д.). Однако, когда я пытаюсь переподписать процессоры с помощью yarn.nodemanager.resource.cpu-vcores=88, я получаю несколько карт и уменьшаю количество ошибок.
Все сбои карты похожи на "Слишком много ошибок извлечения…". Все редукционные ошибки похожи на "....# Блок не имеет достаточного количества реплик....".
Я видел ЭТО и ЭТО ссылки. Я проверил свои файлы /etc/hosts и также увеличил параметр ядра net.core.somaxconn.
Я не понимаю, почему я получаю карту и уменьшаю количество сбоев с переподписанными процессорами.
Любые советы или рекомендации будут полезны, и спасибо заранее.
1 ответ
Я понял причину ошибки "Слишком много выборок…". То, что происходило, было то, что, поскольку серверы были сильно загружены при выполнении моего задания объемом 7 ТБ (помните, что задания объемом 1 ТБ всегда выполнялись успешно), между ведущим и ведомым соединениями не было достаточного количества соединений. Мне нужно было увеличить очередь прослушивания между ведущим и ведомым устройствами, что можно сделать, изменив параметр ядра под названием "somaxconn".
По умолчанию "somaxconn" установлен на 128 в операционной системе rhel. При увеличении значения до 1024 задание 7 ТБ в терасорте успешно выполнено без сбоев.
Надеюсь, это кому-нибудь поможет.