Параллельная загрузка блобов из GCS дает ошибку SSL - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь читать данные из Google Cloud Storage параллельно, используя multiprocessing в python, но получаю следующую ошибку SSL:

OpenSSL.SSL.Error: [('SSL routines', 'ssl3_read_bytes', 'sslv3 alert bad record mac')]

Вот мой минимальный пример:

client_storage = storage.Client.from_service_account_json(ACCOUNT_JSON)
bucket = client_storage.get_bucket(MY_BUCKET)

def fun(blobid):
   blob = bucket.get_blob(blobid)
   res = blob.download_as_string()

   pass

import multiprocessing

num_proc = 4

with multiprocessing.Pool(processes=num_proc) as pool:
   pool.map(fun, list_if_filenames )

Мне нужно загружать и обрабатывать данные из GCS параллельно (до 100 процессов), чтобы ускорить вычисления.Если этот метод не разрешен, знаете ли вы какое-либо другое решение?

1 Ответ

0 голосов
/ 12 февраля 2019

Похоже, что где-то может быть проблема с многопоточностью.

На основе https://googleapis.github.io/google-cloud-python/latest/storage/index.html?highlight=thread%20safe#example-usage, Я считаю, что рекомендуется создавать клиентские экземпляры после multiprocessing.Pool ().

...