Узлы в Spark Cluster совместно используют одно и то же хранилище? - PullRequest
0 голосов
/ 18 октября 2019

Я новичок, чтобы зажечь. Я использую Azure Databricks и пишу код на Python с PySpark. Есть одна конкретная тема, которая меня смущает:

У узлов есть отдельная память (я не имею в виду RAM / кэш)? Или они все используют одно и то же хранилище? Если они совместно используют одно и то же хранилище, то могут ли два разных приложения, работающих в разных Spark Context, обмениваться данными соответственно?

Я не понимаю, почему иногда мы ссылаемся на хранилище dbfs:/tmp/..., а в других случаях мы ссылаемся/dbfs/tmp/ ... Пример: если я использую пакет dbutils из блоков данных, мы используем что-то вроде: dbfs:/tmp/... для ссылки на каталог в файловой системе. Однако, если я использую обычный код Python, я говорю: /dbfs/tmp/.

Ваша помощь очень ценится!

1 Ответ

1 голос
/ 18 октября 2019

Каждый узел имеет отдельную оперативную память и кеширование. Например, если у вас есть кластер с 4 ГБ и 3 узлами. Когда вы развертываете свое искровое приложение, оно запускает рабочие процессы в зависимости от конфигурации кластера и требований к запросам, а также создает виртуальные машины на отдельных узлах или на одном и том же узле. Эти узлы памяти не распределяются между собой в течение всего жизненного цикла приложения.

Это больше касается вопроса совместного использования ресурсов Hadoop и может найти дополнительную информацию из управления ресурсами YARN. Это очень краткий обзор https://databricks.com/session/resource-management-and-spark-as-a-first-class-data-processing-framework-on-hadoop

...