python - DASK 无法识别 EMR 上的工作人员
问题描述
我有一个脚本来并行化网络抓取工作。我们想为此使用 joblib 和 dask。我在 EMR 上创建了一个集群,但我不知道如何在 EMR 上使用 dask。
当我缩放它时,它似乎有 4gb 内存,但实际上我每个都有 16gb 内存。我想扩展它以使用所有实例及其容量。我如何做到这一点以及如何以编程方式扩展 DASK 客户端以扩展自身以获得最大容量。(例如,今天我使用 3 个实例,但有时在我们启动集群时会是 10-20-30 等)
EMR 集群:
1 主 - m5.xlarge 4 vCore,16 GiB 内存
2 核 - m5.xlarge 4 vCore,16 GiB 内存
from dask_yarn import YarnCluster
from dask.distributed import Client
cluster = YarnCluster()
client = Client(cluster)
client.scale(2)
print(client)
[OUT] <Client: 'tcp://172.31.27.208:33307' processes=2 threads=2, memory=4.29 GB>
with joblib.parallel_backend('dask'):
parse_results: List[Dict[str, Any]] = Parallel()(delayed(parse)(i) for i in range(min_id, max_id))
解决方案
推荐阅读
- python - 我该如何解决这个python错误?权限错误:[WinError 32]
- python - 如何在 PyQt5 中创建多个秒表计时器?
- c# - 无法从 API(dotNet Core)获取数据(使用角度)没有“Access-Control-Allow-Origin”
- axios - Svelte 中的 axios 循环依赖错误
- c# - Linq 方法的单元测试
- javascript - 将变量推送到包含变量的数组中 - Javascript
- go - Golang sql驱动程序,为什么我们需要将字节数组的切片作为参数传递给查询
- html - 这是设置自定义字体的正确方法吗?
- c++ - E0070 不完整类型不允许
- linux - linux中文件写入相关的查询