CN107450961B - 一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法 - Google Patents
一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法 Download PDFInfo
- Publication number
- CN107450961B CN107450961B CN201710866197.0A CN201710866197A CN107450961B CN 107450961 B CN107450961 B CN 107450961B CN 201710866197 A CN201710866197 A CN 201710866197A CN 107450961 B CN107450961 B CN 107450961B
- Authority
- CN
- China
- Prior art keywords
- deep learning
- distributed
- platform
- distributed deep
- docker
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于Docker容器的分布式深度学***台、第二分布式深度学习平台。本发明利用Docker的容器化技术,在一台服务器主机上同时搭载多个分布式深度学习***。本发明的改进主要体现在三个方面:一是整个***可以在一台服务器主机上实现,不需要用多主机,节省成本;二是容器通过模板镜像创建,过程简单,不需要重复搭建,避免出现错误浪费时间;三是服务器的CPU能最大化的利用,不再浪费硬件资源。
Description
技术领域
本发明涉及一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法,属于云计算虚拟化技术领域。
背景技术
从本质上讲,云计算是指用户终端通过远程连接获取存储、计算、数据库等计算资源。虚拟化技术是云计算技术的核心组成之一,是将各种计算及存储资源充分整合和高效利用的关键技术,包括服务器虚拟化和桌面虚拟化。Docker作为新兴的轻量级虚拟化技术,与传统的VM相比,它更轻量,启动速度更快,单台硬件上可同时跑成百上千个容器,所以非常适合在业务高峰期通过启动大量容器进行横向扩展。
目前深度学***台,首先分布式深度学***台,分布式深度学习平台能更快的进行运算。
目前市面上这些技术普遍存在如下问题:
1)利用服务器做单机深度学习平台,CPU计算量足够,但是不能完全利用,造成资源浪费。
2)分布式深度学***台所需主机数量大,费用高。
3)分布式深度学习平台搭建过程繁琐,采用主机搭建方法,每台主机都需进行相同步骤。但重复相同步骤过程中会出现不同的错误,导致搭建进程缓慢。
中国专利文献CN106657248A公开了一种基于Docker容器的网络负载均衡***及其搭建方法、工作方法。采用Docker容器技术作为本***的基础技术,利用Docker容器节约硬件资源能在一台服务器主机中创建大量容器的特点,在一台服务器主机上实现整套网络负载均衡***;利用Docker容器能通过镜像秒级创建,并且通过镜像创建的容器能保证完全相同的特点,实现通过容器镜像方便快捷的添加Web服务器进行访问量或数据流的分流。但是,该专利存在以下缺陷:利用Dockerfile创建镜像时,不能可视化和测试镜像中的一些文件配置是否成功。
发明内容
针对现有技术的不足,本发明提供了一种基于Docker容器的分布式深度学习***;
本发明还提供了上述分布式深度学习***的搭建方法及工作方法;
本发明利用Docker的容器化技术,在一台服务器主机上同时搭载多个分布式深度学习***。本发明的改进主要体现在三个方面:一是通过利用Docker的commit指令将配置好的容器生成镜像,实现可视化和测试镜像中的一些文件配置是否成功;二是整个***可以在一台服务器主机上实现,不需要用多主机,节省成本;三是容器通过模板镜像创建,过程简单,不需要重复搭建,避免出现错误浪费时间;四是服务器的CPU能最大化的利用,不再浪费硬件资源。
术语解释:
1、Hadoop分布式平台,是指由Apache基金会所开发的分布式***基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件***Hadoop Distributed File System,简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,可以以流的形式访问文件***中的数据。
2、Spark,是指UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
3、NameNode,管理文件***的命名空间。它维护着文件***树及整棵树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。NameNode也记录着每个文件中各个块所在的数据节点信息,但它并不永久保存块的位置信息,因为这些信息在***启动时由数据节点重建。
本发明的技术方案为:
一种基于Docker容器的分布式深度学***台、Spark,宿主机上还安装有第一分布式深度学***台;每个Docker容器上安装有Hadoop分布式平台、Spark,每个Docker容器上还安装有第一分布式深度学***台。
服务器主机作为宿主机,作为整个平台的硬件支撑,第一分布式深度学***台为两种现在可用的分布式深度学***台。
第一分布式深度学***台是用于帮助进行深度学***台;服务器主机作为整个分布式深度学习***的硬件基础,需要拥有较高处理能力、稳定性、可靠性等方面要求。
根据本发明优选的,所述宿主机的型号为DELL PowerEdge R730,所述第一分布式深度学***台的型号为TensorFlowOnSpark。
DELL PowerEdge R730的服务器,配置为48核CPU、96G内存、8TB本地硬盘;Caffe、TensorFlow为目前最热门的两个单机深度学***台。
上述基于Docker容器的分布式深度学习***的搭建方法,具体步骤包括:
(1)准备宿主机,宿主机即为所述服务器主机;安装Ubuntu14.04操作***;Ubuntu14.04作为支持Docker的Linux操作***中相对稳定的版本,可以用命令行直接安装配置Docker环境;
(2)在宿主机根目录下建立Docker容器所需的主文件夹,主文件夹包括能够挂载的文件夹,用于保存进行深度学习所需要的训练模型、训练数据集、测试数据集、代码及配置文件;
(3)在宿主机中安装Hadoop分布式平台、Spark;用以支持CaffeOnSpark分布式深度学***台;测试Hadoop分布式平台、Spark是否安装成功;如果安装成功,则进入步骤(4),否则,重复执行步骤(3);
(4)在宿主机中安装型号为CaffeOnSpark的第一分布式深度学***台,配置该主节点的IP;***运行时将该宿主机作为主节点;
(5)在宿主机上创建一个空白容器;
(6)在所述空白容器上安装Hadoop分布式平台、Spark;
(7)在步骤(6)安装后的容器上安装型号为CaffeOnSpark的第一分布式深度学***台,配置该从节点的IP;***运行时将该容器作为从节点;
(8)通过Docker的commit指令以步骤(7)安装后的容器为模板创建镜像;
(9)用步骤(8)创建的镜像创建多个Docker容器,并配置每个Docker容器的IP地址。
测试Hadoop分布式平台是否安装成功的步骤如下:执行NameNode的格式化,成功的话,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则是出错。如果在这一步时提示Error:JAVA_HOME is not setand could not be found.的错误,则说明之前设置JAVA_HOME环境变量那边就没设置好,请按教程先设置好JAVA_HOME变量,否则后面的过程都是进行不下去的。接着开启NameNode和DataNode守护进程,若出现如下SSH提示,输入yes即可。
测试Spark是否安装成功的步骤如下:在spark/examples/src/main目录下有一些Spark的示例程序,有Scala、Java、Python、R等语言的版本。运行一个示例程序SparkPi(即计算π的近似值),执行时会输出非常多的运行信息,输出结果不容易找到,可以通过grep命令进行过滤,过滤后的运行结果得到π的5位小数近似值。
上述基于Docker容器的分布式深度学习***的工作方法,具体步骤包括:
(1)启动所述宿主机中的Hadoop平台和Spark,所述宿主机作为整个分布式深度学***台和Spark,若干个所述Docker容器均作为整个分布式深度学习***的从节点;
(2)在宿主机的能够挂载的文件夹下存入深度学习训练所需要的训练模型、训练数据集、测试数据集、代码及配置文件;
(3)通过脚本启动深度学习训练,主节点将深度学习训练任务分配到各个从节点进行并行训练。
本发明的有益效果为:
1、本发明在使用一台服务器主机的情况下能搭建起分布式的深度学习平台。
2、在需要更多分布式节点时,能快速开启容器配置后添加节点。
3、充分利用服务器的CPU计算资源。
附图说明
图1为本发明基于Docker容器的分布式深度学习***的结构框图;
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种基于Docker容器的分布式深度学***台、Spark,宿主机上还安装有第一分布式深度学***台;每个Docker容器上安装有Hadoop分布式平台、Spark,每个Docker容器上还安装有第一分布式深度学***台。
服务器主机作为宿主机,作为整个平台的硬件支撑,第一分布式深度学***台为两种现在可用的分布式深度学***台。
第一分布式深度学***台是用于帮助进行深度学***台;服务器主机作为整个分布式深度学习***的硬件基础,需要拥有较高处理能力、稳定性、可靠性等方面要求。
宿主机的型号为DELL PowerEdge R730,第一分布式深度学***台的型号为TensorFlowOnSpark。
DELL PowerEdge R730的服务器,配置为48核CPU、96G内存、8TB本地硬盘;Caffe、TensorFlow为目前最热门的两个单机深度学***台。
实施例2
实施例1所述的基于Docker容器的分布式深度学习***的搭建方法,具体步骤包括:
(1)准备宿主机,宿主机即为服务器主机;安装Ubuntu14.04操作***;Ubuntu14.04作为支持Docker的Linux操作***中相对稳定的版本,可以用命令行直接安装配置Docker环境;
(2)在宿主机根目录下建立Docker容器所需的主文件夹,主文件夹包括能够挂载的文件夹,用于保存进行深度学习所需要的训练模型、训练数据集、测试数据集、代码及配置文件;
(3)在宿主机中安装Hadoop分布式平台、Spark;用以支持CaffeOnSpark分布式深度学***台;测试Hadoop分布式平台、Spark是否安装成功;如果安装成功,则进入步骤(4),否则,重复执行步骤(3);
测试Hadoop分布式平台是否安装成功的步骤如下:执行NameNode的格式化,成功的话,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则是出错。如果在这一步时提示Error:JAVA_HOME is not setand could not be found.的错误,则说明之前设置JAVA_HOME环境变量那边就没设置好,请按教程先设置好JAVA_HOME变量,否则后面的过程都是进行不下去的。接着开启NameNode和DataNode守护进程,若出现如下SSH提示,输入yes即可。
测试Spark是否安装成功的步骤如下:在spark/examples/src/main目录下有一些Spark的示例程序,有Scala、Java、Python、R等语言的版本。运行一个示例程序SparkPi(即计算π的近似值),执行时会输出非常多的运行信息,输出结果不容易找到,可以通过grep命令进行过滤,过滤后的运行结果得到π的5位小数近似值。
(4)在宿主机中安装型号为CaffeOnSpark的第一分布式深度学***台,配置该主节点的IP;***运行时将该宿主机作为主节点;
(5)在宿主机上创建一个空白容器;
(6)在所述空白容器上安装Hadoop分布式平台、Spark;
(7)在步骤(6)安装后的容器上安装型号为CaffeOnSpark的第一分布式深度学***台,配置该从节点的IP;***运行时将该容器作为从节点;
(8)通过Docker的commit指令以步骤(7)安装后的容器为模板创建镜像;
(9)用步骤(8)创建的镜像创建多个Docker容器,并配置每个Docker容器的IP地址。
实施例3
实施例1所述的基于Docker容器的分布式深度学习***的工作方法,具体步骤包括:
(1)启动所述宿主机中的Hadoop平台和Spark,所述宿主机作为整个分布式深度学***台和Spark,若干个所述Docker容器均作为整个分布式深度学习***的从节点;
(2)在宿主机的能够挂载的文件夹下存入深度学习训练所需要的训练模型、训练数据集、测试数据集、代码及配置文件;
(3)通过脚本启动深度学习训练,主节点将深度学习训练任务分配到各个从节点进行并行训练。
Claims (3)
1.一种基于Docker容器的分布式深度学***台、Spark,宿主机上还安装有第一分布式深度学***台;每个Docker容器上安装有Hadoop分布式平台、Spark,每个Docker容器上还安装有第一分布式深度学***台,其特征在于,具体步骤包括:
(1)准备宿主机,宿主机即为服务器主机;
(2)在宿主机根目录下建立Docker容器所需的主文件夹,主文件夹包括能够挂载的文件夹,用于保存进行深度学习所需要的训练模型、训练数据集、测试数据集、代码及配置文件;
(3)在宿主机中安装Hadoop分布式平台、Spark;测试Hadoop分布式平台、Spark是否安装成功;如果安装成功,则进入步骤(4),否则,重复执行步骤(3);
(4)在宿主机中安装型号为CaffeOnSpark的第一分布式深度学***台,配置主节点的IP;
(5)在宿主机上创建一个空白容器;
(6)在所述空白容器上安装Hadoop分布式平台、Spark;
(7)在步骤(6)安装后的容器上安装型号为CaffeOnSpark的第一分布式深度学***台,配置从节点的IP;
(8)通过Docker的commit指令以步骤(7)安装后的容器为模板创建镜像;
(9)用步骤(8)创建的镜像创建多个Docker容器,并配置每个Docker容器的IP地址。
2.根据权利要求1所述一种基于Docker容器的分布式深度学***台的型号为CaffeOnSpark,所述第二分布式深度学习平台的型号为TensorFlowOnSpark。
3.一种基于Docker容器的分布式深度学习***的工作方法,所述分布式深度学习***为权利要求1所述分布式深度学习***,其特征在于,具体步骤包括:
(1)启动所述宿主机中的Hadoop平台和Spark,所述宿主机作为整个分布式深度学***台和Spark,若干个所述Docker容器均作为整个分布式深度学习***的从节点;
(2)在宿主机的能够挂载的文件夹下存入深度学习训练所需要的训练模型、训练数据集、测试数据集、代码及配置文件;
(3)通过脚本启动深度学习训练,主节点将深度学习训练任务分配到各个从节点进行并行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710866197.0A CN107450961B (zh) | 2017-09-22 | 2017-09-22 | 一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710866197.0A CN107450961B (zh) | 2017-09-22 | 2017-09-22 | 一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107450961A CN107450961A (zh) | 2017-12-08 |
CN107450961B true CN107450961B (zh) | 2020-10-16 |
Family
ID=60498100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710866197.0A Active CN107450961B (zh) | 2017-09-22 | 2017-09-22 | 一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107450961B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109961151B (zh) * | 2017-12-21 | 2021-05-14 | 同方威视科技江苏有限公司 | 用于机器学习的计算服务的***及用于机器学习的方法 |
CN108255968A (zh) * | 2017-12-26 | 2018-07-06 | 曙光信息产业(北京)有限公司 | 一种大数据并行文件***的设计方法 |
CN109284184A (zh) * | 2018-03-07 | 2019-01-29 | 中山大学 | 一种基于容器化技术的分布式机器学习平台的搭建方法 |
CN108920259B (zh) | 2018-03-30 | 2022-06-24 | 华为云计算技术有限公司 | 深度学习作业调度方法、***和相关设备 |
CN110659127A (zh) * | 2018-06-29 | 2020-01-07 | 杭州海康威视数字技术股份有限公司 | 一种处理任务的方法、装置及*** |
CN109063842A (zh) * | 2018-07-06 | 2018-12-21 | 无锡雪浪数制科技有限公司 | 一种兼容多种算法框架的机器学习平台 |
CN109086134A (zh) * | 2018-07-19 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种深度学习作业的运行方法和装置 |
CN108958892A (zh) * | 2018-08-14 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种创建用于深度学习作业的容器的方法和装置 |
CN110866605A (zh) * | 2018-08-27 | 2020-03-06 | 北京京东尚科信息技术有限公司 | 数据模型训练方法、装置、电子设备及可读介质 |
CN109254830A (zh) * | 2018-09-04 | 2019-01-22 | 郑州云海信息技术有限公司 | 深度学习***中可视化管理方法和装置 |
CN109146084B (zh) * | 2018-09-06 | 2022-06-07 | 郑州云海信息技术有限公司 | 一种基于云计算的机器学习的方法及装置 |
CN109358944A (zh) * | 2018-09-17 | 2019-02-19 | 深算科技(重庆)有限公司 | 深度学习分布式运算方法、装置、计算机设备及存储介质 |
CN109522089A (zh) * | 2018-11-02 | 2019-03-26 | 成都三零凯天通信实业有限公司 | 基于虚拟化环境的分布式视图像识别方法 |
CN111343219B (zh) * | 2018-12-18 | 2022-08-02 | 同方威视技术股份有限公司 | 计算服务云平台 |
CN110245003A (zh) * | 2019-06-06 | 2019-09-17 | 中信银行股份有限公司 | 一种机器学习单机算法编排***及方法 |
CN110554995A (zh) * | 2019-08-13 | 2019-12-10 | 武汉中海庭数据技术有限公司 | 一种深度学习模型的管理方法及*** |
WO2022134001A1 (zh) * | 2020-12-25 | 2022-06-30 | 深圳晶泰科技有限公司 | 基于容器化技术的机器学习模型框架的开发方法与*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140206B2 (en) * | 2015-11-17 | 2018-11-27 | Proov Systems Ltd. | Computerized method and end-to-end “pilot as a service” system for controlling start-up/enterprise interactions |
CN105871988A (zh) * | 2015-12-14 | 2016-08-17 | 乐视云计算有限公司 | 服务部署方法及装置 |
CN105577503A (zh) * | 2016-01-18 | 2016-05-11 | 浪潮集团有限公司 | 一种基于Docker的云交换机***及其实现方法 |
CN105740048B (zh) * | 2016-01-26 | 2019-03-08 | 华为技术有限公司 | 一种镜像管理方法、装置及*** |
CN106657248A (zh) * | 2016-11-01 | 2017-05-10 | 山东大学 | 一种基于Docker容器的网络负载均衡***及其搭建方法、工作方法 |
CN106850621A (zh) * | 2017-02-07 | 2017-06-13 | 南京云创大数据科技股份有限公司 | 一种基于容器云技术快速搭建Hadoop集群的方法 |
-
2017
- 2017-09-22 CN CN201710866197.0A patent/CN107450961B/zh active Active
Non-Patent Citations (3)
Title |
---|
Docker学习之路(六)用commit命令创建镜像;weixin_34343689;《https://blog.csdn.net/weixin_34343689/article/details/89641274》;20150227;第1-5页 * |
docker学习笔记之把容器commit成镜像;qwerhq;《https://www.cnblogs.com/Dream-Chaser/p/6104815.html》;20161126;第1-3页 * |
docker学习笔记之把容器commit成镜像的方法;qwerhq;《https://www.jb51.net/article/113604.htm》;20170512;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107450961A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450961B (zh) | 一种基于Docker容器的分布式深度学习***及其搭建方法、工作方法 | |
US9965377B1 (en) | Deploy pipeline for development packages | |
EP2494456B1 (en) | Backup using metadata virtual hard drive and differential virtual hard drive | |
CN111209005B (zh) | 程序文件的编译方法、装置和计算机可读存储介质 | |
US11048492B2 (en) | Reducing downtime while patching binaries on a cluster | |
CN111614733B (zh) | 一种分布式多分片集群的部署方法、装置及存储介质 | |
US10581676B2 (en) | System and method for providing configuration settings to services in a cloud infrastructure | |
US10572470B2 (en) | Enhanced FSCK mechanism for improved consistency in case of erasure coded object storage architecture built using clustered file system | |
CN109460358B (zh) | 基于Cmdb的配置管理方法及*** | |
CN110851234A (zh) | 基于docker容器的日志处理方法及装置 | |
CN109150964B (zh) | 一种可迁移的数据管理方法及服务迁移方法 | |
US10298656B2 (en) | Extending representational state transfer application program interface (REST API) functionality | |
CN116860746A (zh) | 用于轻量大数据的处理*** | |
CN103077034A (zh) | 混合虚拟化平台java应用迁移方法与*** | |
US10984190B2 (en) | Atom-based sensible synchronization for information indexing | |
CN113032356B (zh) | 一种客舱分布式文件存储***及实现方法 | |
CN110795105A (zh) | 一种配电自动化主站***自动编译部署方法与*** | |
CN104750849A (zh) | 用于维护基于树形结构的目录关系的方法和*** | |
CN115756520A (zh) | 一种分布式集群中的FlinkSQL部署方法及装置 | |
CN111352664A (zh) | 分布式机器学习任务启动方法、***、设备及存储介质 | |
US10678813B2 (en) | Scaling quorum based replication systems | |
CN111563064B (zh) | 一种文件操作的方法、***、设备及可读存储介质 | |
Mirajkar et al. | Perform wordcount map-reduce job in single node apache hadoop cluster and compress data using lempel-ziv-oberhumer (lzo) algorithm | |
CN112286538B (zh) | 一种Greenplum数据库自动化安装方法及装置 | |
CN106909674B (zh) | 一种数据库统计信息更新的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |