Ядро искры и параллелизм задач
У меня очень простой вопрос о свечах. Я обычно запускаю искровые работы, используя 50 ядер. Просматривая ход выполнения задания, в большинстве случаев он показывает 50 процессов, работающих параллельно (как и должно быть), но иногда он показывает только 2 или 4 искровых процесса, работающих параллельно. Как это:
[Stage 8:================================> (297 + 2) / 500]
RDD обрабатываютсяrepartitioned
на более чем 100 разделах. Так что это не должно быть проблемой.
У меня есть наблюдения, хотя. Я видел закономерность, что большую часть времени это происходит, показывает локальность данных в SparkUI.NODE_LOCAL
в то время как в других случаях, когда все 50 процессов запущены, некоторые процессы показываютRACK_LOCAL
, Это заставляет меня сомневаться, что, возможно, это происходит потому, что данные кэшируются перед обработкой в том же узле, чтобы избежать перегрузки сети, и это замедляет дальнейшую обработку.
Если это так, то как этого избежать? И если это не так, что здесь происходит?