计算机技术杂类一起玩python程序员

【解析】python分布式搭建

2018-03-17  本文已影响50人  肥宅_Sean

非常开心,解决了很久都没有解决的问题

使用的语言: Python3.5
分布式机器: windows7

注意到,其实,通过这工具搭建分布式不需要管使用的电脑是什么系统。

分布式使用流程

Title:使用分布式系统
用户->分布式Scheduler: 发送任务
分布式Scheduler->分布式worker1: 计算任务一
分布式Scheduler->分布式worker2: 计算任务二
分布式Scheduler->分布式worker3: 计算任务三
分布式Scheduler->分布式worker...: 计算任务...


分布式worker1-->分布式Scheduler: 计算任务一结果
分布式worker2-->分布式Scheduler: 计算任务二结果
分布式worker3-->分布式Scheduler: 计算任务三结果
分布式worker...-->分布式Scheduler: 计算任务...结果

分布式Scheduler-->>用户: 计算结果

分布式结构


上面是关于分布式系统的基本概念(或者必要知识。

下面开始讲述搭建过程

搭建分布式

库是一定要安装的。而且这个库特别小。1MB左右???大胆下吧

这里写图片描述

到这里,分布式系统,其实已经搭建好了。下面,模拟用户来使用

用户是一台新的电脑(当然,也可以是任何的一台电脑。但是必须要跟这些电脑都在同样的一个局域网下。在这样的条件下,开始使用,我们之前搭建好的服务器。

下面是我在一个一台电脑上运行的写的代码
记得!,要把client上的IP地址跟端口号都写成之前Scheduler的IP地址跟端口号

下面是我用代码:

from dask.distributed import Client
from time import time


def square(x):
    return x ** 2


if __name__ == '__main__':
    MAX = 1000
    st = time()
    client = Client('192.168.0.199:8786')   # 这里的地址记得根据我上面说的修改掉。
    A = client.map(square, range(MAX))
    total = client.submit(sum, A)
    print(total.result())
    et = time()
    print(et - st)

这是输出的结果:

332833500
0.6459999084472656

后记

这个框架搭建好,以后,我们以后就只需要通过修改函数的本质,就可以实现关于分布式了。
有人可能会说,这么简单的分布式,为什么工资会高?
我想给有这样想法的朋友说一下。
首先,要知道这个工具的开发者将这个工具开发的已经非常好了,接口分装的特别不错。他们的付出是值得大家认可的。
其次,理解,并使用这个框架也不是很容易的(请给我鼓励
再来,这只是一个非常简单的Demo。其中还有很多的细节需要注意的,都没有。很多算法需要解决的,也没有。
可以说,这里的坑还有很多!
最后,我想肯定还是有我不知道的东西的!所以...
...

上一篇下一篇

猜你喜欢

热点阅读