我正在尝试使用python中的multiprocessing
从Google Cloud Storage并行读取数据,但是我一直收到以下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个进程),以加快计算速度。如果不允许该方法,您知道其他解决方案吗?
答案 0 :(得分:0)
听起来好像某个地方存在多线程问题。
基于https://googleapis.github.io/google-cloud-python/latest/storage/index.html?highlight=thread%20safe#example-usage,我认为最佳实践是在 multiprocessing.Pool()之后创建客户端实例。