python многопроцессорная обработка не работает в режиме кластера пряжи - выдает ошибку памяти - PullRequest
0 голосов
/ 29 февраля 2020

У меня заканчиваются проблемы с памятью, когда я запускаю задание pyspark с «python multiprocessing» в режиме кластера. Тот же код отлично работает в режиме клиента. Это задание pyspark не распространяется и выполняется на случайных рабочих узлах в кластере. Этот рабочий узел имеет 48 ядер, в то время как мой пограничный узел, на котором я работал, имеет только 24 ядра, но он все еще работает успешно. Не уверен, что происходит и почему происходит сбой при выполнении в режиме кластера через пряжу. Ниже приведен фрагмент кода, относящийся к многопроцессорной обработке, которая дает сбой -

 with Pool(processes=len(outputs.keys())*2,maxtasksperchild=2) as  p:
    driverLogger.info('Loop started. Total CPUs ' +str(os.cpu_count()) + ' available cpus ' +str(len(os.sched_getaffinity(0))))
    output_list = p.map(saveOutputs,outputs.keys())

В основном я пытаюсь записывать файлы параллельно в HDFS, используя метод saveOutputs, который успешно работает в режиме клиента, но не в режиме кластера из-за проблема с памятью.

Пожалуйста, предложите.

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