Могут ли рабочие узлы Apache Spark быть машинами, отличными от узлов данных HDFS? - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть кластер HDFS (скажем, он имеет 5 узлов данных), если я хочу настроить кластер Spark (скажем, он имеет 3 рабочих узла) для чтения / записи данных в кластер HDFS, мне нужно убедиться, что Sparkрабочие узлы находятся на тех же машинах узлов данных HDFS?ИМО у них могут быть разные машины.Но если рабочие узлы Spark и узлы данных HDFS являются разными компьютерами, при чтении данных из HDFS рабочие узлы Spark должны загружать данные с разных машин, что может привести к более высокой задержке.Хотя, если они находятся на одних и тех же машинах, задержка может быть уменьшена.Правильно ли мое понимание?

1 Ответ

0 голосов
/ 21 декабря 2018

В «голом железе», установленном и изначально постулированном MR, принцип Локальности данных применяется, как вы заявляете, и Spark устанавливается на все узлы данных, подразумевая, что они также будут рабочим узлом.Итак, Spark Worker находится на узле данных для обеспечения осведомленности о стойке и локальности данных для HDFS.Тем не менее, есть другие менеджеры хранилищ, такие как KUDU сейчас и другие варианты NOSQL, которые не используют HDFS.

С облачными подходами для Hadoop вы увидите, что хранилище и вычисления разводятся обязательно, например, AWS EMR и EC2 и др.Это не может быть иначе с точки зрения эластичности в вычислениях.Не так уж и плохо, поскольку Spark перетасовывает одним и тем же рабочим, когда данные, по возможности, получены для связанных ключей.

Итак, для Cloud этот вопрос больше не актуален.Для чистого металла Spark может быть установлен на разных машинах, но не имеет смысла.Я бы установил на все узлы HDFS, 5, а не 3, как я понимаю, в таком случае.

...