Параметр «total-executor-cores» в Spark по отношению к узлам данных - PullRequest
0 голосов
/ 25 января 2019

Еще один предмет, о котором я мало читал.

Оставив S3 в стороне и не имея возможности сейчас попробовать классический классический локальность данных подход к Spark, Hadoop, а не в режиме динамического распределения ресурсов, тогда:

  • Что если большой набор данных в HDFS распределен по (всем) N узлам данных в кластере, но параметр total-executor-cores установлен ниже N, и нам нужно прочитать все данные, очевидно, (все) N соответствующих узлов данных?

  • Я предполагаю, что Spark должен игнорировать этот параметр для чтения из HDFS. Или нет?

  • Если это игнорируется, ядро ​​исполнителя должно быть выделено на этом узле данных и, таким образом, получено общим заданием, и, таким образом, этот параметр должен интерпретироваться как означающий для обработки, а не для блоков чтения?

  • Сразу ли данные из такого узла данных перетасовываются туда, где были размещены исполнители?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 января 2019

Здесь, кажется, немного путаницы.

Оптимальная локальность данных (локальный узел) - это то, чего мы хотим достичь, а не гарантировать.Все, что может сделать Spark - это запросить ресурсы (например, с помощью YARN - Как YARN знает локальность данных в Apache spark в режиме кластера ) и надеяться, что он получит ресурсы, которые удовлетворяют ограничениям на локальность данных.

Если этого не произойдет, он будет просто получать данные с удаленных узлов.Однако это не случайное перемешивание.Это просто простая передача по сети.

Итак, чтобы ответить на ваш вопрос - Spark будет использовать выделенный ресурс, пытаясь сделать все возможное, чтобы удовлетворить ограничения.Он не может использовать узлы, которые не были получены, поэтому он не будет автоматически получать дополнительные узлы для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...