второе приложение запускается, но на главной странице мониторинга я вижу его как «Ожидание», и оно будет иметь 0 ядер, пока не будет выполнено первое.
Я столкнулся то же самое некоторое время назад. Здесь есть две вещи ..
Возможно, это и есть причины.
1) У вас нет соответствующей инфраструктуры.
2) Возможно, вы использовали планировщик емкости, который не иметь упреждающий механизм для размещения новых рабочих мест до него.
Если это # 1, то вам нужно увеличить количество узлов, выделять больше ресурсов, используя ваш spark-submit
.
Если это # 2, тогда вы можете принять oop справедливое расписание, где вы может поддерживать 2 пула см. документацию spark по этому преимущество: вы можете запускать задания parllel. Fair позаботится об этом, предварительно освободив некоторые ресурсы и выделив другое задание, которое выполняется parllely.
mainpool
для первой искровой работы .. backlogpool
для запуска вашей второй искровой работы.
Для достижения этой цели вам необходимо иметь xml, подобный этому, с примером конфигурации пула конфигурации пула:
<pool name="default">
<schedulingMode>FAIR</schedulingMode>
<weight>3</weight>
<minShare>3</minShare>
</pool>
<pool name="mainpool">
<schedulingMode>FAIR</schedulingMode>
<weight>3</weight>
<minShare>3</minShare>
</pool>
<pool name="backlogpool">
<schedulingMode>FAIR</schedulingMode>
<weight>3</weight>
<minShare>3</minShare>
</pool>
Наряду с этим вам необходимо внести еще некоторые незначительные изменения. .. в коде драйвера, например, какое первое задание пула должно go, а какое второе задание пула должно go.
Как это работает:
Подробнее см. В статьях me ..
имел oop -ярн-справедливый-schedular-преимущества-объяснил-part1
имел oop -ярн-справедливый-schedular -advantages-объяснено-часть2
Попробуйте эти идеи, чтобы преодолеть ожидание. Надеюсь, это поможет ..