CN109104317A - 基于Docker容器的大数据集群自动配置方法及装置 - Google Patents

基于Docker容器的大数据集群自动配置方法及装置 Download PDF

Info

Publication number
CN109104317A
CN109104317A CN201810961590.2A CN201810961590A CN109104317A CN 109104317 A CN109104317 A CN 109104317A CN 201810961590 A CN201810961590 A CN 201810961590A CN 109104317 A CN109104317 A CN 109104317A
Authority
CN
China
Prior art keywords
docker container
big data
configuration
container
domain name
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.)
Granted
Application number
CN201810961590.2A
Other languages
English (en)
Other versions
CN109104317B (zh
Inventor
于宏亮
宋怀明
谢莹莹
郭庆
蒋丹东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Dawning International Information Industry Co Ltd
Original Assignee
Zhongke Dawning International Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongke Dawning International Information Industry Co Ltd filed Critical Zhongke Dawning International Information Industry Co Ltd
Priority to CN201810961590.2A priority Critical patent/CN109104317B/zh
Publication of CN109104317A publication Critical patent/CN109104317A/zh
Application granted granted Critical
Publication of CN109104317B publication Critical patent/CN109104317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种基于Docker容器的大数据集群自动配置方法及装置。所述方法包括:在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中;利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量;利用Docker容器提供的EntryPoint功能执行模板替换程序;读取每个Docker容器的环境变量进行大数据组件的配置。本发明能够为用户提供一个“免配置”的大数据集群,即分配给用户的容器里的大数据集群不再需要后续的任何配置即可以使用。

Description

基于Docker容器的大数据集群自动配置方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于Docker容器的大数据集群自动配置方法及装置。
背景技术
传统大数据实训系统因其面向的多为大数据初学者,目的在于普及大数据相关的基础知识,如果为每个用户分配几台物理机会耗费巨大,资源也无法充分地利用,因此主流的大数据实训系统目前为用户提供的实训环境往往是基于多租户或者虚拟机的方式。多租户的方式即在一个大数据集群环境下为每个用户开通单独的Linux系统账户,利用Linux系统自身的多用户多任务特性满足不同用户的同时使用要求。但是这种方式隔离性差,用户在使用运行大数据集群时很容易产生数据间的干扰,因此这种技术已经渐渐淘汰。虚拟机的方式则是为每个用户单独分配几台虚拟机,这几台虚拟机为该用户独享,在隔离性方面比多租户方式要好,但是宿主机的性能损耗比较大,而且对网络部署的要求也比较高。
随着容器技术的发展,在容器环境里搭建大数据集群从而进行教学实训渐渐成为实训平台厂商的主流技术选择。与虚拟机相比,容器除了同样具有较好的隔离性外,还具有启动速度快、资源利用率高、性能开销小等优点。
目前在容器中运行大数据集群,通常的实现方式是将大数据组件预置到容器镜像里,大数据组件的配置文件都为初始配置,也就是说运行在不同容器里的大数据组件之间并没有任何的联系,并不在同一个大数据集群里。之所以不能在镜像里就将大数据组件的配置文件配置好是因为容器的创建是动态的,在容器被成功创建并运行之前,IP等信息是不确定的。在全部容器启动后用户需要登陆到每一个容器里根据容器集群的具体信息(IP、端口号、主机名等用于大数据组件通信的信息)进行手动配置。当然,也可以通过检测容器启动状态,当发现所有的容器都正常启动后,再运行一个外部程序,分别到每个容器上进行配置,这样虽然免去了用户手动配置的烦恼,但是实现逻辑上比较复杂,需要额外的监控程序和配置程序。
发明内容
为了解决上述技术问题,本发明提供了一种基于Docker容器的大数据集群自动配置方法及装置,能够为用户提供一个“免配置”的大数据集群,即分配给用户的容器里的大数据集群不再需要后续的任何配置即可以使用。
第一方面,本发明提供一种基于Docker容器的大数据集群自动配置方法,所述方法包括:
在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中;
利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量;
利用Docker容器提供的EntryPoint功能执行模板替换程序;
读取每个Docker容器的环境变量进行大数据组件的配置。
可选地,所述读取每个Docker容器的环境变量进行大数据组件的配置包括:
利用环境变量与模板文件中变量同名的命名规则进行大数据组件的配置文件更新。
可选地,所述Docker容器域名时利用预设的命名规则进行定义的。
第二方面,本发明提供一种基于Docker容器的大数据集群自动配置装置,所述装置包括:
注册模块,用于在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中;
写入模块,用于利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量;
替换模块,用于利用Docker容器提供的EntryPoint功能执行模板替换程序;
配置模块,用于读取每个Docker容器的环境变量进行大数据组件的配置。
可选地,所述配置模块,用于利用环境变量与模板文件中变量同名的命名规则进行大数据组件的配置文件更新。
可选地,所述Docker容器域名时利用预设的命名规则进行定义的。
本发明实施例提供的基于Docker容器的大数据集群自动配置方法及装置,通过在集群环境中引用域名系统DNS,来避开大数据集群配置对主机名及容器IP的依赖,从而能够为用户提供一个“免配置”的大数据集群,即分配给用户的容器里的大数据集群不再需要后续的任何配置即可以使用。
附图说明
图1为本发明一实施例基于Docker容器的大数据集群自动配置方法的流程图;
图2为本发明实施例与现有技术进行大数据组件通信的过程流程图;
图3为以配置文件更新为例进行大数据集群自动配置的流程示意图;
图4为本发明一实施例基于Docker容器的大数据集群自动配置装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种基于Docker容器的大数据集群自动配置方法,如图1所示,所述方法包括:
S11、在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中。
S12、利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量。
S13、利用Docker容器提供的EntryPoint功能执行模板替换程序。
S14、读取每个Docker容器的环境变量进行大数据组件的配置。
其中,所述Docker容器域名时利用预设的命名规则进行定义的。
本发明实施例提供的基于Docker容器的大数据集群自动配置方法,通过在集群环境中引用域名系统DNS,来避开大数据集群配置对主机名及容器IP的依赖,同时通过设定的命名规则对容器域名进行管理,这样即使是新创建的容器也可以根据这个命名规则推测出后续的容器域名,也就可以提前进行大数据组件的配置。从而能够为用户提供一个“免配置”的大数据集群,即分配给用户的容器里的大数据集群不再需要后续的任何配置即可以使用。
在实现本发明的过程中,发明人制约容器上运行“免配置”大数据集群的重要原因是大数据集群节点之间的通信依赖于主机名及IP,组件通信时会根据配置文件中的主机名到系统/etc/hosts里查找相应的IP,因为IP的生成是动态的,所以无法在启动之前获取,因而无法做到自动配置。针对这个问题,发明人决定在Kubernetes集群环境里引入DNS,在每个容器创建时都会自动将自己的主机域名和IP注册到DNS里,这样我们就成功避开了对容器IP的依赖,避免了对/etc/hosts文件的更改。如图2所示,给出了本发明实施例与现有技术进行大数据组件通信的过程流程图,由图可知,将大数据组件间的通信相关配置项由IP改为域名,通过DNS域名解析绕过大数据组件依赖/etc/hosts和集群IP的依赖。
可选地,所述读取每个Docker容器的环境变量进行大数据组件的配置包括:
利用环境变量与模板文件中变量同名的命名规则进行大数据组件的配置文件更新。
为了更为详细的理解本发明实施例,下面为以配置文件更新为例进行大数据集群自动配置,如图3所示,具体更新流程如下:
1)在镜像里,我们首先将需要对所有用到的大数据组件配置文件进行整理,将所有依赖于容器IP地址及主机名的配置项梳理出来制成xml文件(上图左下框所示),文件中标明了要修改的文件路径及需要修改的属性字段名。自动配置脚本就是先读取这个文件,取出要修改的配置文件,然后逐条读取其中的配置项。
2)以HBase_QUORUM这个字段为例,容器的环境变量里被业务系统注入了同名的变量名,该同名环境变量的值(左上图浅灰色文字所示)就是要修改成的目标值。
3)获取到环境变量的目标值后,按照红色文字指明的文件路径,通过正则匹配找到同名模板变量(右上图浅灰色文字所示)进行替换。
本发明实施例还提供一种基于Docker容器的大数据集群自动配置装置,如图4所示,所述装置包括:
注册模块,用于在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中;
写入模块,用于利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量;
替换模块,用于利用Docker容器提供的EntryPoint功能执行模板替换程序;
配置模块,用于读取每个Docker容器的环境变量进行大数据组件的配置。
其中,所述Docker容器域名时利用预设的命名规则进行定义的。
本发明实施例提供的基于Docker容器的大数据集群自动配置装置,通过在集群环境中引用域名系统DNS,来避开大数据集群配置对主机名及容器IP的依赖,同时通过设定的命名规则对容器域名进行管理,这样即使是新创建的容器也可以根据这个命名规则推测出后续的容器域名,也就可以提前进行大数据组件的配置。从而能够为用户提供一个“免配置”的大数据集群。
可选地,所述配置模块,用于利用环境变量与模板文件中变量同名的命名规则进行大数据组件的配置文件更新。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (6)

1.一种基于Docker容器的大数据集群自动配置方法,其特征在于,包括:
在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中;
利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量;
利用Docker容器提供的EntryPoint功能执行模板替换程序;
读取每个Docker容器的环境变量进行大数据组件的配置。
2.根据权利要求1所述的方法,其特征在于,所述读取每个Docker容器的环境变量进行大数据组件的配置包括:
利用环境变量与模板文件中变量同名的命名规则进行大数据组件的配置文件更新。
3.根据权利要求1所述的方法,其特征在于,所述Docker容器域名时利用预设的命名规则进行定义的。
4.一种基于Docker容器的大数据集群自动配置装置,其特征在于,包括:
注册模块,用于在每个Docker容器创建时将自身的主机名和IP地址注册到外部域名系统DNS中;
写入模块,用于利用变量注入方式将Docker容器域名写入每个Docker容器的环境变量;
替换模块,用于利用Docker容器提供的EntryPoint功能执行模板替换程序;
配置模块,用于读取每个Docker容器的环境变量进行大数据组件的配置。
5.根据权利要求4所述的装置,其特征在于,所述配置模块,用于利用环境变量与模板文件中变量同名的命名规则进行大数据组件的配置文件更新。
6.根据权利要求4所述的装置,其特征在于,所述Docker容器域名时利用预设的命名规则进行定义的。
CN201810961590.2A 2018-08-22 2018-08-22 基于Docker容器的大数据集群自动配置方法及装置 Active CN109104317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810961590.2A CN109104317B (zh) 2018-08-22 2018-08-22 基于Docker容器的大数据集群自动配置方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810961590.2A CN109104317B (zh) 2018-08-22 2018-08-22 基于Docker容器的大数据集群自动配置方法及装置

Publications (2)

Publication Number Publication Date
CN109104317A true CN109104317A (zh) 2018-12-28
CN109104317B CN109104317B (zh) 2021-06-29

Family

ID=64850778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810961590.2A Active CN109104317B (zh) 2018-08-22 2018-08-22 基于Docker容器的大数据集群自动配置方法及装置

Country Status (1)

Country Link
CN (1) CN109104317B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714449A (zh) * 2019-01-17 2019-05-03 平安科技(深圳)有限公司 服务域名的动态配置方法、装置、设备及存储介质
CN109871258A (zh) * 2019-01-17 2019-06-11 珠海金山网络游戏科技有限公司 基于分布式容器的修改主机配置的方法及装置
CN111182089A (zh) * 2019-12-31 2020-05-19 北京金山云网络技术有限公司 容器集群系统和访问大数据组件的方法、装置及服务器
CN112698919A (zh) * 2021-01-07 2021-04-23 北京金万维科技有限公司 一种基于linux使用docker快速搭建共享统一web开发环境的方法
CN113472745A (zh) * 2021-05-31 2021-10-01 山东英信计算机技术有限公司 一种基于selinux的openstack公有云多租户隔离方法、系统及终端
US11249749B2 (en) 2020-03-26 2022-02-15 Red Hat, Inc. Automatic generation of configuration files

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105897946A (zh) * 2016-04-08 2016-08-24 北京搜狐新媒体信息技术有限公司 一种访问地址的获取方法及系统
CN106325975A (zh) * 2016-09-09 2017-01-11 浪潮软件股份有限公司 一种利用Docker容器自动化部署与管理大数据集群的方法
CN106569895A (zh) * 2016-10-24 2017-04-19 华南理工大学 一种基于容器的多租户大数据平台构建方法
US20170373940A1 (en) * 2016-06-23 2017-12-28 Sap Se Container-based multi-tenant computing infrastructure
CN107707688A (zh) * 2017-10-19 2018-02-16 杭州数梦工场科技有限公司 一种kubernetes集群解析宿主机主机名的方法及装置
US20180137431A1 (en) * 2016-11-15 2018-05-17 General Electric Company Multimodal, small and big data, machine learing systems and processes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105897946A (zh) * 2016-04-08 2016-08-24 北京搜狐新媒体信息技术有限公司 一种访问地址的获取方法及系统
US20170373940A1 (en) * 2016-06-23 2017-12-28 Sap Se Container-based multi-tenant computing infrastructure
CN106325975A (zh) * 2016-09-09 2017-01-11 浪潮软件股份有限公司 一种利用Docker容器自动化部署与管理大数据集群的方法
CN106569895A (zh) * 2016-10-24 2017-04-19 华南理工大学 一种基于容器的多租户大数据平台构建方法
US20180137431A1 (en) * 2016-11-15 2018-05-17 General Electric Company Multimodal, small and big data, machine learing systems and processes
CN107707688A (zh) * 2017-10-19 2018-02-16 杭州数梦工场科技有限公司 一种kubernetes集群解析宿主机主机名的方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714449A (zh) * 2019-01-17 2019-05-03 平安科技(深圳)有限公司 服务域名的动态配置方法、装置、设备及存储介质
CN109871258A (zh) * 2019-01-17 2019-06-11 珠海金山网络游戏科技有限公司 基于分布式容器的修改主机配置的方法及装置
CN111182089A (zh) * 2019-12-31 2020-05-19 北京金山云网络技术有限公司 容器集群系统和访问大数据组件的方法、装置及服务器
CN111182089B (zh) * 2019-12-31 2022-09-20 北京金山云网络技术有限公司 容器集群系统和访问大数据组件的方法、装置及服务器
US11249749B2 (en) 2020-03-26 2022-02-15 Red Hat, Inc. Automatic generation of configuration files
CN112698919A (zh) * 2021-01-07 2021-04-23 北京金万维科技有限公司 一种基于linux使用docker快速搭建共享统一web开发环境的方法
CN113472745A (zh) * 2021-05-31 2021-10-01 山东英信计算机技术有限公司 一种基于selinux的openstack公有云多租户隔离方法、系统及终端

Also Published As

Publication number Publication date
CN109104317B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN109104317A (zh) 基于Docker容器的大数据集群自动配置方法及装置
US10331973B2 (en) System and method for deploying graphical diagram topologies
US11470040B2 (en) Cloud infrastructure resource information scanning
EP2823393B1 (en) Offline provisioning of virtual machines
US20220329481A1 (en) Composable edge device platforms
CN107222320A (zh) 云服务器集群建立高可用连接的方法和装置
CN102567075B (zh) 一种云计算环境中虚拟机上下文设置方法
US20110283278A1 (en) User interface for managing a distributed virtual switch
CN110995561B (zh) 基于容器技术的虚拟网络数据通信交互方法与系统
CN107643927A (zh) 一种统一门户方法、装置及系统
CN106301829A (zh) 一种网络业务扩容的方法和装置
US20190149411A1 (en) Virtual machine server-side network adaptation
US7523187B1 (en) Methods and apparatus for managing network resources
CN109768892B (zh) 一种微服务化的网络安全实验系统
US8775623B2 (en) Automatic port conflict resolution during application deployment
CN112256399B (zh) 基于Docker的Jupyter Lab多用户远程开发方法及系统
EP3639134A1 (en) Detecting and managing recurring patterns in device and service configuration data
CN112099913B (zh) 一种基于OpenStack实现虚拟机安全隔离的方法
CN106445585A (zh) 基于容器技术的应用部署方法和系统
US10389580B2 (en) Distributed computing system configuration
CN113296823A (zh) 一种生成资源配置文件的方法、装置、设备及存储介质
KR20150113353A (ko) 가상 데스크탑 이미지를 분산 저장 및 블록 레벨로 입출력하는 서버 시스템
CN110489305A (zh) 一种服务器管理方法及装置
CN105873234A (zh) 虚拟化网络功能与网元管理系统建立连接的方法和装置
CN106022726B (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