Возможно ли запустить Dask в режиме пряжи-клиента? - PullRequest
0 голосов
/ 28 апреля 2018

Я использую dask_yarn (часть knit), чтобы запустить кластер Dask Yarn следующим образом:

import dask_yarn

cluster = dask_yarn.DaskYARNCluster(env='/home/hadoop/reqs/dvss.zip', lang='en_US.UTF-8')
cluster.start(n_workers=4, memory=5120, cpus=3)

Это запрашивает 1 vCore на базовых узлах для AM, а остальные vCores - рабочим.

В Spark у меня есть возможность запустить приложение в режиме yarn-client, при котором драйвер будет работать на главных узлах, и тогда все ресурсы основного узла могут быть свободны для использования работниками. Можно ли сделать то же самое с dask_yarn?

1 Ответ

0 голосов
/ 28 апреля 2018

Думаю, вы неправильно понимаете значение двух режимов развертывания в spark.

Существует два режима развертывания, которые можно использовать для запуска приложений Spark на YARN. В режиме кластера драйвер Spark запускается в главном процессе приложения, которым управляет YARN в кластере, и клиент может уйти после запуска приложения. В режиме клиента драйвер запускается в клиентском процессе, а мастер приложения используется только для запроса ресурсов из YARN.

Из этого я понимаю, что ApplicationMaster всегда существует, и поэтому ему должно быть выделено некоторых ресурсов. Вопрос в том, требуется ли отдельный клиентский процесс вне пряжи.

Для knit также всегда есть ApplicationMaster и клиентский процесс - он эффективно реализует режим клиента. Кроме того, будет запущен процесс python с планировщиком Dask. Это может быть немного расточительно, и мы хотели бы, чтобы клиентский процесс (java) не требовался, но он мал.

Что касается требований к ApplicationMaster, то они на самом деле очень легки по стандартам YARN. Обратите внимание, что YARN является службой распределения ресурсов и фактически не использует системные ресурсы, когда контейнеры запрашивают их.

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