Подтвердить что ты не робот

Почему сбой "Искры" с "слишком большим количеством открытых файлов"?

Я получаю "слишком много открытых файлов" во время фазы тасования моей работы Spark. Почему моя работа открывает так много файлов? Какие шаги я могу предпринять, чтобы попытаться сделать мою работу успешной.

4b9b3361

Ответ 1

Это ответили на список пользователей искры:

Лучшим способом, безусловно, является просто увеличение ulimit, если это возможно, это своего рода предположение, которое мы делаем в Spark, что кластеры будут способный переместить его.

Возможно, вы сможете взломать это, уменьшив количество редукторы [или сердечники, используемые каждым node], но это может иметь некоторые последствия для вашей работа.

В общем случае, если node в вашем кластере имеет C назначенные ядра, и вы запускаете работа с X-редукторами, затем Spark откроет файлы C * X параллельно и начало записи. Консолидация в случайном порядке поможет уменьшить общее количество созданных файлов, но количество дескрипторов файлов, открытых на любом время не меняется, поэтому это не поможет проблему ulimit.

-Патрик Венделл

Ответ 2

по умолчанию ulimit - 1024, что является смехотворно низким для крупномасштабных приложений. HBase рекомендует до 64K; современные Linux-системы, похоже, не имеют проблем с этим большим количеством открытых файлов.

использовать

ulimit -a

чтобы увидеть текущее максимальное количество открытых файлов

ulimit -n

может временно изменить количество открытых файлов; вам необходимо обновить файлы конфигурации системы и ограничения для каждого пользователя, чтобы сделать это постоянным. В системах RedHat, которые можно найти в

/etc/sysctl.conf
/etc/security/limits.conf