当前位置:   article > 正文

【干货】Dask快速搭建分布式集群(大数据0基础可以理解,并使用!)_dask 分布式

dask 分布式

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

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

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

分布式使用流程

Created with Raphaël 2.1.2 使用分布式系统 用户 用户 分布式Scheduler 分布式Scheduler 分布式worker1 分布式worker1 分布式worker2 分布式worker2 分布式worker3 分布式worker3 分布式worker... 分布式worker... 发送任务 计算任务一 计算任务二 计算任务三 计算任务... 计算任务一结果 计算任务二结果 计算任务三结果 计算任务...结果 计算结果

分布式结构

  • 由Scheduler跟Worker1,Worker2…构成了整个分布式系统的结构
  • 用户可以变,用户的任务也可以变。但只要分布式集群的结构搭建起来之后,要做的事情就可以用很多了。
  • 关键的一点:,使用的时候不要去改变分布式系统。
  • 用户将任务发出来,也就是说,用户自己单独在一台电脑上运行代码就好了。 交给搭建好的分布式集群系统!

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

下面开始讲述搭建过程

搭建分布式
  • 这里使用的是Python的分布式库Dask。
  • 先安装这个库。具体方法:在命令行下输入pip install dask[complete] (如果已经安装好这个库了就会提示已经安装好了)

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

  • 之前流程图中每一个单位,其实都是一台电脑来的。(当然,你开多个窗口,在一台电脑上,其实也是可以的。
  • 首先,在一台电脑上(命令行条件下, 输入dask-scheduler。就会爆出一堆的信息。其中有个地方很关键

    这里写图片描述

  • 在我这,就是使用那个tcp://,后面的那个地址,加上端口号。

  • 而这个地址,就是未来要给,用户使用的地址
  • 多台电脑上,同样打开电脑。打开命令行模式, 输入:dask-worker 192.168.0.199:8786注意到,这里的这个地址其实就是刚刚说到的那个地址,每个人的结果都会是不一样的。大家根据自己的情况来决定。
  • 每个电脑根据自己的身份输入上面的代码,之后。 在scheduler电脑,上的信息出现了别的信息之后。就连接成功了。
  • 如果不成功,请再输入一次之前的代码。你肯定是哪里输入错了!!!

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

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

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

  • 可以理解,Scheduler是整个分布式系统的给用户的接口。

下面是我用代码:

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

这是输出的结果:

332833500
0.6459999084472656

后记

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

最后,老套路,宣传一波自己的公众号!(求关注哇!)
本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃)


二维码

如果觉得有帮助的话,可以扫码,赞赏鼓励一下!谢谢!


这里写图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/526127
推荐阅读
  

闽ICP备14008679号