[置顶] 【干货】Dask快速搭建分布式集群(大数据0基础可以理解,并使用!)
2018-03-10 17:50
344 查看
非常开心,解决了很久都没有解决的问题
使用的语言: 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)
这是输出的结果:
332833500
0.6459999084472656
后记
这个框架搭建好,以后,我们以后就只需要通过修改函数的本质,就可以实现关于分布式了。有人可能会说,这么简单的分布式,为什么工资会高?
我想给有这样想法的朋友说一下。
首先,要知道这个工具的开发者将这个工具开发的已经非常好了,接口分装的特别不错。他们的付出是值得大家认可的。
其次,理解,并使用这个框架也不是很容易的(请给我鼓励
再来,这只是一个非常简单的Demo。其中还有很多的细节需要注意的,都没有。很多算法需要解决的,也没有。
可以说,这里的坑还有很多!
最后,我想肯定还是有我不知道的东西的!所以…
…
最后,老套路,宣传一波自己的公众号!(求关注哇!)
本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃)
如果觉得有帮助的话,可以扫码,赞赏鼓励一下!谢谢!
相关文章推荐
- XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。
- XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。
- 如何使用vagrant快速搭建couchbase集群
- Elasticsearch与MongoDB 数据同步及分布式集群搭建(一)
- 跟上大数据的步伐:快速搭建Spark集群
- 大数据基础知识:分布式计算、服务器集群
- 大数据基础知识:分布式计算、服务器集群[zz]
- 干货--Redis池化联接和搭建分布式集群
- DayDayUP_大数据学习课程[1]_hadoop2.6.0完全分布式集群环境和伪分布式集群搭建
- 使用Docker在本地搭建Hadoop分布式集群
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- 使用Consul快速搭建简易分布式服务监控系统
- 使用docker搭建hadoop分布式集群
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 所有的基础数据都可以恢复删除
- 使用Docker在本地搭建Hadoop分布式集群
- Elasticsearch与MongoDB 数据同步及分布式集群搭建 (二)
- 使用docker搭建部署hadoop分布式集群
- 数据基础知识:分布式计算、服务器集群
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法