Имеет ли Spark на пряже дело с локальностью данных при запуске исполнителей

Я рассматриваю статическое размещение искрового исполнителя. Рассматривает ли Spark on yarn локальность данных необработанного входного набора данных, используемого в приложении Spark при запуске исполнителей.

Если он позаботится об этом, то как это будет сделано, так как искровый исполнитель запрашивается и выделяется, когда инициализируется контекст искры. Может существовать вероятность того, что несколько наборов исходных входных данных будут использованы в приложении spark, которые могут физически находиться на разных узлах данных. мы не можем запустить executor на всех этих узлах.

Я понимаю, что спарк заботится о локальности данных при планировании задачи на исполнителя (как уже упоминалось https://spark.apache.org/docs/latest/tuning.html).

1 ответ

Вы правы, говоря, что

spark заботится о локальности данных при планировании задачи на исполнителя

Когда Yarn запускает исполнителя, он не знает, где находятся ваши данные. Таким образом, в идеальном случае вы запускаете executor на всех узлах кластера. Однако, более реалистично, вы запускаете только на подмножестве узлов.

Теперь, это не обязательно плохо, потому что HDFS по своей природе поддерживает избыточность, что означает, что есть вероятность, что на узле, на котором искра запросила данные, есть копия данных.

Другие вопросы по тегам