中国核工业第五建设公司网站,保定网站制作公司,wordpress文章表格,策划人网站一、dask介绍优势#xff1a;dask内部自动实现了分布式调度、无需用户自行编写复杂的调度逻辑和程序#xff1b;通过调用简单的方法就可以进行分布式计算、并支持部分模型的并行化处理#xff1b;内部实现的分布式算法#xff1a;xgboost、LR、sklearn的部分方法等用一句话…一、dask介绍优势dask内部自动实现了分布式调度、无需用户自行编写复杂的调度逻辑和程序通过调用简单的方法就可以进行分布式计算、并支持部分模型的并行化处理内部实现的分布式算法xgboost、LR、sklearn的部分方法等用一句话说dask就是python版本的spark,是一个用Python 语言实现的分布式计算框架二、dask安装1.环境建议使用Anaconda3工具包系统windows、linux2.安装1.conda安装conda install dask2.pip 安装pip install dask3.source安装git clone dask/daskcd daskpython setup.py install3.分布式版安装1.conda安装conda install dask distributed-cconda-forge2.pip 安装pip install dask distributed --upgrade3.source安装git clone https://github.com/dask/distributed.gitcd distributedpython setup.py install三、dask集群搭建1.启动主节点(类似注册中心)本人实验环境一台windows机器3台虚拟化linux服务器并4台机器均已按照上面步骤安装配置dask选择Windows机器作为主节点启动命令$ dask-scheduler控制台显示信息如下distributed.scheduler - INFO - -----------------------------------------------distributed.scheduler - INFO - Clear task statedistributed.scheduler - INFO - Scheduler at: tcp://192.168.1.42:8786distributed.scheduler - INFO - :8787distributed.scheduler - INFO - Local Directory: C:\Users\User\AppData\Local\Temp\scheduler-gd9uk980distributed.scheduler - INFO - -----------------------------------------------2.启动工作节点在其他每台linux机器命令行输入$ dask-worker 192.168.1.42:8786注意后面跟的ip和端口是主节点的ip和对应服务的端口工作节点启动成功后此时主节点会显示多出信息distributed.scheduler - INFO - Register tcp://192.168.1.184:45772distributed.scheduler - INFO - Starting worker compute stream, tcp://192.168.1.184:45772distributed.core - INFO - Starting established connectiondistributed.scheduler - INFO - Register tcp://192.168.1.183:43405distributed.scheduler - INFO - Starting worker compute stream, tcp://192.168.1.183:43405distributed.core - INFO - Starting established connectiondistributed.scheduler - INFO - Register tcp://192.168.1.188:38095distributed.scheduler - INFO - Starting worker compute stream, tcp://192.168.1.188:38095distributed.core - INFO - Starting established connection四、 dask集群使用1.单机使用示例单机daskimport timefrom dask.distributed import Clientclient Client(asynchronousTrue)def square(x):return x ** 2def neg(x):return -xts time.time()A client.map(square, range(10000))B client.map(neg, A)total client.submit(sum, B)print(total.result())print(cost time :%s%(time.time()-ts))cost time :8.5075879096984862.分布式版使用示例分布式daskimport timefrom dask.distributed import Clientclient Client(192.168.1.42:8786 ,asynchronousTrue)ts time.time()A client.map(square, range(10000))B client.map(neg, A)total client.submit(sum, B)print(total.result())print(cost time :%s%(time.time()-ts))cost time :3.793848991394043通过官网提供的测试例子可以看出dask的确体现了分布式的优势。如果您觉得有帮助的话可以扫码赞赏鼓励一下谢谢