Spark SQL: активная задача не одинакова для всех исполнителей - PullRequest
0 голосов
/ 21 марта 2020

версия spark: 2.4.4 scala: 2.11 развернуто в aws emr

conf кластера: enter image description here

conf конф:

          "--deploy-mode",
          "cluster",
          "--master",
          "yarn",
          "--conf",
          "spark.sql.session.timeZone=Europe/Paris",
          "--conf",
          "spark.yarn.maxAppAttempts=1",
          "--conf",
          "spark.driver.maxResultSize=4g",
          "--executor-cores",
          "5",
          "--conf",
          "spark.sql.autoBroadcastJoinThreshold= 1073741824",
          "--executor-memory",
          "11g",
          "--driver-memory",
          "12g",

В1: Я бы загрузил папку с более чем 60 ГБ, у одного исполнителя есть еще одна задача, которую другие, и я не понимаю, почему еще одна задача.

Это потому, что результат ха sh функция для одной группы значений больше, так что этому исполнителю требуется еще одна задача для завершения sh? enter image description here Q2: почему я получаю только 8 исполнителей?

с размером моего кластера 30 ГБ ОЗУ и документом aws, для приложения доступно более 22 ГБ, поэтому я Настройте 11 ГБ каждого исполнителя, и я ожидаю 20 исполнителей, так как у меня 10 машин. enter image description here

Если я установлю - память исполнителя 6g , то спарк запустится максимум для 20 исполнителей, а если я установлю - executor- Память 8g , спарк запустят максимум 14 исполнителей. Я что-то не совсем понял насчет AWS EMR и мощности каждой машины.

1 Ответ

0 голосов
/ 22 марта 2020

Вы пытались установить --num-executors на 2 или более, чтобы увидеть, что происходит?

Следуйте правилам, упомянутым в этом руководстве по передовым методам настройки Spark Applications: Распределение ядер и памяти исполнителей для Spark Application .

...