У меня есть два главных работника, работающих с высокой доступностью с ZooKeeper, в автономном режиме. Мне нужно выполнить три задачи в django несколько раз с помощью spark, и две из них (две конечные точки) должны выполняться одновременно. После того, как я запустил двух главных рабочих (первый в качестве лидера, а второй в режиме ожидания), моя цель состоит в том, чтобы когда одна из задач вызывалась, раб должен был выполнить задачу, и после этого раб будет освобожден, то же самое с другой задачей.
После того, как я запустил мастер-рабочий и выполнил эту часть в моей конечной точке, чтобы запустить процесс задачи:
spark=SparkSession \
.builder \
.master("spark://"+SPARK_WORKERS) \
.appName('word_cloud') \
.config("spark.executor.memory", '2g') \
.config('spark.executor.cores', '2') \
.config('spark.cores.max', '2') \
.config("spark.driver.memory",'2g') \
.getOrCreate()
sqlContext = SQLContext(spark)
tweetsRDD=spark.sparkContext.parallelize(tweetsList)
df = sqlContext.read.json(tweetsRDD)
Я получаю эту ошибку:
Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
Согласно этому ответу мне нужно запустить работорговца:
./bin/spark-class org.apache.spark.deploy.worker.Worker spark://host:port --cores 2 --memory 2g # as an example
Так что после этого все заработало хорошо.
Мой Вопрос
Когда команда SparkSession
выполнена, она делает запросы с указанными ресурсами (память, ядра ...), затем мастер назначает задачу активному ведомому, который должен быть началось с тех же ресурсов (или больше)? Итак, это должно случиться всегда так?
У меня есть это основание c сомнение, потому что я не могу понять, Почему, если подчиненный работник работает с ядрами и памятью, необходимо установить команду Spark Session с ресурсами, Является ли этот процесс (назначением) задачи с указанными ресурсами, чтобы рабский работник с такими же или более ресурсами не мог автоматически произойти искрой?
Заранее спасибо за любую помощь