ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dask.distributed搭建分布式计算环境

2019-07-14 22:01:45  阅读:614  来源: 互联网

标签:INFO distributed worker 分布式计算 client dask scheduler


0. 前言

本文旨在快速上手dask.distributed搭建分布式集群环境, 详细内容请参考dask官网

1. 安装

pip install dask

2. 搭建dask分布式

(1) 简单的搭建

>>> ipython

>>> from dask.distributed import Client

>>> client = Client()     # 创建运行scheduler, 并且创建运行worker, 在本地搭建计算集群

>>>client

<Client: scheduler="127.0.0.1:8786" processes=8 cores=8>

(2) 复杂的创建

# 终端1

$ dask-scheduler       # 创建scheduler

distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO - Clear task state
distributed.scheduler - INFO -   Scheduler at: tcp://192.168.10.100:8786
distributed.scheduler - INFO -       bokeh at:                     :8787
distributed.scheduler - INFO - Local Directory:    /tmp/scheduler-wydqn90b
distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO - Receive client connection: Client-237debe6-cd07-11e8-9edd-a0c589feaf42

# 终端2
$ dask-worker 127.0.0.1:8786     # 在scheduler上创建一个worker   因为都是在同一台机器所以可以使用127.0.0.1

$ dask-worker 192.168.10.100:8786 # 第二个worker   #worker不一定在本机, 可以在第二台PC中创建通过网络连接到scheduler中.

$ dask-worker 127.0.0.1:8786 # 第三个

>>> client = Client("127.0.0.1:8786")        #  连接到上面开启的scheduler

<Client: scheduler='tcp://192.168.10.100:8786' processes=3 cores=24>      # 可以看到上面开启的3个worker

3. 简单使用

(1) map, submit, gather方法

>>> def test(x):

>>>    return x + 2

>>>a = client.map(test, range(10)) 

>>>total = client.sumit(sum, test)      

>>>total.result()      # 使用集群去得到最后的结果

65

>>>client.gather(total)      # 使用gather方法等于上面

65

>>>client.gather(a)

[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

(2) restart

当运行错误时, 重启集群

>>> client.restart()

作者:Crazy灬峰少
来源:CSDN
原文:https://blog.csdn.net/qq_22918243/article/details/83009275
版权声明:本文为博主原创文章,转载请附上博文链接!

标签:INFO,distributed,worker,分布式计算,client,dask,scheduler
来源: https://blog.csdn.net/chenxuezhong0413/article/details/95930911

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有