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

使用的语言: 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 timedef square(x):return x ** 2if __name__ == '__main__':MAX = 1000st = 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。其中还有很多的细节需要注意的,都没有。很多算法需要解决的,也没有。
可以说,这里的坑还有很多!
最后,我想肯定还是有我不知道的东西的!所以…

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


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


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

  1. 如何基于Docker快速搭建Elasticsearch集群?

    如何基于Docker快速搭建Elasticsearch集群? Elasticsearch  作为一个搜索引擎,我们对它的基本要求就是存储海量数据并且可以在非常短的时间内查询到我们想要的信息.所以第一步 ...

  2. VMware搭建分布式集群基础环境

    VMware搭建分布式集群基础环境 1. 前言 在日常学习.工作当中,我们经常需要用到分布式集群环境,如zookeeper集群.redis集群.大数据集群等,而通常并没有那么多的物理机器可以使用,因此 ...

  3. Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解: zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hado ...

  4. 使用VirtualBox搭建分布式集群环境记录

    针对集群环境,工作中基本上都是直接申请真实的物理机,或者干脆让运维给一套多机.自己之前个人研究的时候也是使用之前从二手市场淘来的多台物理机组成的分布式集群,但是最近一不小心把其中两台搞坏了,加之确实比 ...

  5. 在Linux上如何快速搭建MongoDB集群

    搭建MongoDB集群的一个小妙招,教你快速搭建MonggoDB集群. 一.首先确认你的集群信息 三台机器的配置服务(27018)形成复制集,分片1.2.3也在各机器都部署一个实例,它们之间形成复制集 ...

  6. docker-compose快速搭建kafka集群

    文章目录 前言 docker-compose快速搭建kafka集群(较详细) docker-compose快速搭建Zookeeper集群+kafka集群 参考资料 前言 当前是在学习kafka3.0的 ...

  7. docker快速搭建kafka集群

    一.准备工作 1.拉取kafka镜像 docker pull wurstmeister/kafka docker tag docker.io/wurstmeister/kafka kafka dock ...

  8. Hadoop集群大数据解决方案之MapReduce 程序实战进阶(自定义partitionsortgroup)(六)

    准 备   在上一篇博客举了个简单的word count,重在说明mapreduce的流程,但是针对mapreduce的编程,程序员能控制的,远远不止map和reduce,还有诸如partition, ...

  9. redis3.0搭建分布式集群

    redis高版本使用ruby实现了集群,所以需要ruby环境,安装ruby环境和redis的gem接口后,就可以使用redis的redis-trib.rb脚本创建集群. 先列一下大的步骤. 1.修改配 ...

最新文章

  1. redisson的锁的类型_绝对干货:利用redisson完成分布式锁功能
  2. http方式调用第三方接口
  3. Composer - PHP 世界里用于管理项目依赖的工具
  4. linux鼠标驱动程序,Linux usb子系统(一) _写一个usb鼠标驱动
  5. Linux关闭java命令,Linux系统关闭或重新启动主机的命令详解
  6. 华为鸿蒙新机价格表,华为Mate30已确认:鸿蒙系统+巴龙5000,售价感人
  7. 【新书】python+tensorflow机器学习实战,详解19种机器学习经典算法
  8. ubuntu 挂载优盘
  9. 2010年安全主题展望
  10. OpenLayers 在Vue中增删改
  11. 已在该编译单元中定义_LLVM中的pass及其管理机制
  12. html如何导入字体样式表,导入html字体及其样式变体?
  13. 安装VS2019、MFC,并创建MFC工程文件,查看工程信息
  14. [USACO20JAN]Loan Repayment S
  15. 电脑退出安全模式后连不上网
  16. Android incorrect AVA format
  17. 2020学期学习计划
  18. 利用轨迹度量快速找出新冠患者接触的易感人群
  19. 【学术分享】刘知远:好的研究想法从哪里来
  20. Java面试题基础系列228道(1),快看看哪些你还不会?

热门文章

  1. LVS的简单示例(一)
  2. JS组件系列——封装自己的JS组件,你也可以
  3. 登录环境故障的原理及解决办法? -bash-4.1$ -bash-4.1$
  4. 原创哈希数据导出算法
  5. 构造图 Codeforces Round #236 (Div. 2) C. Searching for Graph
  6. Android的一个关于Activity和UI的小程序
  7. SQL Try Catch
  8. ajax后台如何把对象转为json_57. Django 2.1.7 查询数据返回json格式
  9. 数据结构C语言实现课后第1-2章答案
  10. 软件开发模式对比(瀑布、迭代、螺旋、敏捷)