У меня есть Spark SQL, который раньше выполнялся <10 минут, теперь работает через 3 часа после миграции кластера, и мне нужно углубиться в то, что он на самом деле делает.Я новичок в спарке, и, пожалуйста, не возражайте, если я задам что-то не связанное. </p>
Увеличено spark.executor.memory
, но не повезло.
Env: Azure HDInsight Spark 2.4 в хранилище Azure
SQL: чтение и объединение некоторых данных и, наконец, запись результата в метасторское хранилище Hive.
Скрипт spark.sql
заканчивается следующим кодом: .write.mode("overwrite").saveAsTable("default.mikemiketable")
Поведение приложения: внутрипервые 15 минут он загружает и выполняет большинство задач (199/200);оставил только 1 процесс-исполнитель живым и непрерывным, чтобы перемешивать данные чтения / записи.Поскольку сейчас остается только 1 исполнитель, нам нужно подождать 3 часа, пока приложение не закончится.
Оставлен в живых только 1 исполнитель
Не уверен, что делает исполнитель:
Время от времени мы можем сказать, что чтение в случайном порядке увеличивается:
Поэтому я увеличил память spark.executor.memory до 20g, но ничего не изменилось,От Ambari и YARN я могу сказать, что у кластера осталось много ресурсов.
Освобождение почти всех исполнителей
Любые указания приветствуются.