Интересно, можно ли установить «фоновый» кластер Hadoop. Я имею в виду, в конце концов, это предназначено для того, чтобы иногда иметь дело с узлами, которые недоступны или медленны.
Итак, предположим, что в каком-то университете есть компьютерный класс. Скажем, 100 ящиков, все с высококлассным настольным оборудованием, гигабитным etherner, возможно, даже с одинаковой установкой программного обеспечения. Линукс здесь тоже очень популярен.
Однако эти 100 коробок, конечно же, предназначены для настольных систем для студентов. Бывают случаи, когда лаборатория будет переполнена, но также бывают случаи, когда лаборатория будет пуста. Пользовательские данные в основном хранятся в центральном хранилище, скажем, в NFS, поэтому локальные диски используются не так часто.
Мне кажется хорошей идеей использовать системы в качестве кластера Hadoop во время их простоя. Простейшей настройкой, конечно же, было бы задание cron запускать кластер ночью и выключать утром. Однако и в течение дня многие компьютеры не будут использоваться.
Однако как бы Hadoop отреагировал, например, на узлы отключаются при входе любого пользователя? Можно ли легко «приостановить» (вытеснить!) узел в hadoop и при необходимости переместить его для замены? В идеале мы бы дали Hadoop возможность отложить вычисления перед приостановкой задачи (также для освобождения памяти). Как бы сделать такую установку? Есть ли способ сообщить Hadoop, что узел будет приостановлен?
Насколько я могу судить, датаноды не должны быть остановлены, и, возможно, необходимо увеличить репликацию, чтобы иметь более 3 копий. С YARN также может быть проблема, заключающаяся в том, что при перемещении трекера задач на произвольный узел он может быть приостановлен в какой-то момент. Но, возможно, можно управлять тем, что есть небольшой набор узлов, который всегда включен и который будет запускать средства отслеживания задач.
Уместно ли просто stop
tasktracker
или отправить SIGSTOP
(затем продолжить с SIGCONT
)? Первый, вероятно, даст hadoop возможность отреагировать, второй будет продолжаться быстрее, когда пользователь скоро выйдет из системы (поскольку тогда задание может быть продолжено). Как насчет ПРЯЖИ?