CN111538625A - 基于Docker技术的Ambari集群部署、数据备份方法及电子设备 - Google Patents

基于Docker技术的Ambari集群部署、数据备份方法及电子设备 Download PDF

Info

Publication number
CN111538625A
CN111538625A CN202010358998.8A CN202010358998A CN111538625A CN 111538625 A CN111538625 A CN 111538625A CN 202010358998 A CN202010358998 A CN 202010358998A CN 111538625 A CN111538625 A CN 111538625A
Authority
CN
China
Prior art keywords
ambari
mirror image
cluster
server
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.)
Granted
Application number
CN202010358998.8A
Other languages
English (en)
Other versions
CN111538625B (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.)
Xian Jiaotong University
Intelligent Technology Branch of China Railway First Engineering Group Co Ltd
Original Assignee
Xian Jiaotong University
Intelligent Technology Branch of China Railway First Engineering Group 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 Xian Jiaotong University, Intelligent Technology Branch of China Railway First Engineering Group Co Ltd filed Critical Xian Jiaotong University
Priority to CN202010358998.8A priority Critical patent/CN111538625B/zh
Publication of CN111538625A publication Critical patent/CN111538625A/zh
Application granted granted Critical
Publication of CN111538625B publication Critical patent/CN111538625B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种基于Docker技术的Ambari集群部署和应用方法,将Docker技术与Ambari集群结合,具体公开了将Ambari集群部署在Docker环境中的过程以及如何将Docker化Ambari集群实际应用和维护的方法,保证了Docker化Ambari集群具备实际的应用价值和稳定性;主要包含了在线部署Ambari集群和离线应用Ambari集群两个部分,支持配置Ambari版本及多项配置参数;支持将Ambari集群数据与容器分离,使数据更易于保存、备份和恢复;并且最终的Docker化Ambari集群支持运行在任何支持Docker集群的机器上;Ambari集群应用后,利用Docker容器的可恢复性,以及本方法中HDFS本地数据不依赖容器的特性,用户可通过定期备份HDFS本地数据和MySQL数据的方式,得到某一时刻的集群备份,便于后期维护。

Description

基于Docker技术的Ambari集群部署、数据备份方法及电子 设备
技术领域
本发明涉及大数据技术领域,具体涉及一种基于Docker技术的Ambari集群部署、数据备份方法及电子设备。
背景技术
随着云计算和云平台的技术发展,云端的环境管理越来越重要,Docker技术在资源调度和环境管理方面具有非常大的优势,Docker技术具备很好的兼容性,可在同一个服务器上运行多个需要不同操作系统或环境的服务,并且各个服务之间彼此隔离,互不干扰,对云平台的环境部署带来了很大的便利性,同时,Docker技术在大型服务组件的管理方面,还具备易部署、易维护、易迁移和易管理等的优势。
Ambari是一个开源的大数据集群部署和管理工具,该工具的目的在于快速提供、管理和监控基于HADOOP的集群,同时还提供了便利的UI管理页面和对应的REST API。
但是,由于Ambari集群服务组件较多,集群本身需要的环境较复杂,在长期运行Ambari集群的机器上,容易出现以下问题:
由于环境原因,在部署和使用其他组件时,可能出现环境冲突的情况;
随着版本的升级迭代,若要升级旧版本的集群,可能出现需要重新配置操作系统、重新部署和配置Ambari集群以及重新备份数据的问题,这对应实际生产环境的影响是巨大的;
由于误操作或是服务器运行异常等原因,可能出现数据丢失、组件运行异常等不好处理的现象,而如果备份整个服务器,带来的成本也是极高的。
发明内容
为了解决现有技术存在的问题,本发明提供了一种基于Docker技术的Ambari集群部署、数据备份方法及电子设备,将Docker技术与Ambari集群结合,提供将Ambari集群部署在Docker环境中的过程以及如何将Docker化Ambari集群实际应用和维护的方法,保证了Docker化Ambari集群具备实际的应用价值和稳定性。
为了实现上述目的,本发明采用的技术方案是,基于Docker技术的Ambari集群部署方法,包括如下步骤:
S1,在Docker环境下,基于原始的Linux操作系统镜像,根据应用环境配置好依赖环境,生成一个基础Linux镜像;
S2,基于S1得到的基础镜像,构建用于存储结构化数据的MySQL数据库镜像;
S3,基于S1得到的基础Linux镜像,配置指定Ambari集群的版本,先构建AmbariRepo镜像并启动,再构建Ambari Server镜像和Ambari Agent镜像,得到Ambari基础镜像;
S4,启动S2所得MySQL数据库镜像和S3得到的Ambari基础镜像,MySQL数据库镜像、Ambari Repo镜像和Ambari Server镜像各启动一份得到对应的MySQL容器、Ambari Repo容器和Ambari Server容器,Ambari Agent镜像启动数量与待配置的Ambari集群节点数量相同,每个Ambari Agent容器均指定不同的hostname,在同一个Docker网络下启动MySQL容器、Ambari Repo容器和Ambari Server容器,Ambari Server容器映射8080端口,访问Ambari管理页面,Ambari源选择本地镜像源,待部署的节点列表设置为Ambari Agent容器的hostname,配置SSH私钥,设置HDFS本地目录,Ambari集群配置完成后进行安装,然后返回Ambari管理页面的主页,确认所有服务均正常运行后,Ambari集群部署完成;
S1-S4在联网的条件下进行。
S11,从官方的Ubuntu镜像中选择并拉取指定的镜像版本;
S12,用户根据当地网络需求选择是否配置Linux系统的软件镜像源,在配置了软件镜像源后,更新软件列表以保证后续服务安装能正确执行;
S13,用户根据应用需求选择是否配置Linux系统的时区和支持的语言,如不设置,则会设置为默认的GMT+0时区和英文;
S14,S12和S13可配置参数设置完成后,构建Linux基础镜像。
构建MySQL数据库镜像时,根据用户实际需求,先配置MySQL数据库的字符集、最大连接数以及初始ROOT密码信息,再基于S1构建的Linux基础镜像构建MySQL数据库镜像。
S3中构建Ambari Repo镜像具体如下:首先安装wget服务和httpd服务,其中wget服务用于下载官方源,httpd服务用于通过Apache2的方式发布本地源;然后依次下载与指定Ambari集群的版本对应的Ambari源、HDP源和HDP-UTILS源,解压到指定的网页发布目录下;最后,删除下载的压缩文件,得到Ambari Repo镜像。
S3中构建Ambari Server镜像具体如下:首先安装部署和运行所需要的基础环境;其次配置Ambari源,根据实际需求选择官方源或使用S33生成的Ambari Repo容器,Ambari源配置完成后更新Linux的软件列表,保证后续安装能正确执行;再开始安装和配置AmbariServer服务,其中支持的配置选项包括Ambari数据库的连接地址、数据库名、表名以及该数据库的用户名和密码;然后配置Ambari Server镜像的SSH免密登录;最后添加该镜像的初始化数据库脚本和启动脚本。
S3中构建Ambari Agent镜像具体如下:首先安装Ambari Agent部署和运行所需要的基础环境;其次配置Ambari源,选择官方源或使用S33生成的Ambari Repo容器,软件源配置完成后更新Linux的软件列表;再安装和配置Ambari Agent服务;配置Ambari Agent镜像的SSH免密登录,Ambari Agent镜像的SSH密钥和构建Ambari Server镜像使用的密钥一致;然后配置OpenSSL服务,OpenSSL的版本与Ambari所要求的版本一致;最后添加AmbariAgent镜像的启动脚本;
在Ambari Agent镜像的启动脚本中,配置挂载HDFS本地数据的权限配置和挂载配置功能。
基于本发明所部署Ambari集群的数据备份方法,
初始数据备份,进入Ambari集群管理页面,确保所有组件均成功启动后,关闭Ambari集群,保存当前状态的MySQL本地数据,提交当前状态的Ambari Agent容器为新的Ambari Node镜像,并且保存每个Ambari Agent容器的当前HDFS本地数据,其中每个AmbariNode镜像均对应一份HDFS本地数据,所述HDFS本地数据即为每个Ambari Node镜像的初始数据,对每个Ambari Node镜像的初始数据进行备份,集群使用初始数据的备份进行初始化;Ambari集群运行时,每个节点运行Ambari Node镜像时挂载Ambari Node镜像对应的HDFS本地数据。
将初始数据备份的Ambari Node镜像及对应的HDFS本地数据分发到服务器各个节点,将MySQL镜像及对应的MySQL本地数据分发到指定的服务器A,将Ambari Server镜像分发到指定的服务器B,其中服务器A、服务器B和各个节点服务器均可重叠,所有镜像分发完毕后,在Docker集群的管理节点上配置每个镜像的运行节点、Ambari Node镜像的数据挂载目录、MySQL镜像的数据挂载目录和Ambari组件下各项服务的端口映射。
一种电子设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本发明所述基于Docker技术的Ambari集群部署方法。
一种电子设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现基于本发明所述数据备份方法。
与现有技术相比,本发明至少具有以下有益效果:本发明针对因为网络问题导致的大型服务安装失败问题,提供了一种更可靠的部署方式,尽可能保证在网络不稳定时也能成功部署集群;本发明针对集群的本地化问题,提供了基础时区配置、语言配置和数据库字符集设置方式;本发明提供的部署方式内置了基础的Ambari部署环境以及Ambari版本配置,使得用户可根据实际应用需求快速部署Ambari集群;
本发明提供一套通用的Ambari集群镜像,可将该镜像部署在任意支持Docker集群的机器下,支持多种Docker集群工具,
本发明构建的Docker化Ambari集群可应用于离线环境;基础Linux镜像能实现根据用户当前的网络环境,自定义配置Linux的软件镜像源,避免因为网络不佳等原因导致软件安装失败等现象的发生;根据用户所在时区,自定义配置Linux镜像的时区,保证集群时区的统一和本地化;根据用户实际需求,自定义配置Linux镜像的操作系统语言,防止在使用本地语言时出现乱码等现象。
基于本发明在Docker网络下部署的Ambari集群,进行数据备份,保证使用自定义的MySQL数据库时不出现问题;在Ambari Agent镜像的启动脚本中,配置挂载HDFS本地数据的权限配置和挂载配置功能保证HDFS本地数据可以正确挂载、使用和迁移,以及实现了HDFS本地数据于容器分离的功能,使得HDFS本地数据不依赖于容器,随时通过部署好的Ambari Node镜像来构建;在集群运行过程中,HDFS本地数据与容器分离,并且可以随时通过部署好的Ambari Node镜像来构建得到最新状态的容器,保证了数据的稳定性;用户可通过定期备份Ambari Node容器挂载数据和MySQL数据库容器挂载数据的方式来备份集群数据,该方法可用最少的空间备份数据,同时也提供了数据恢复方式,便于后期维护和管理。
附图说明
图1是本发明的基于Docker部署Ambari集群流程图。
图2是本发明方法中的基础Linux镜像构建流程。
图3是本发明方法中的Ambari基础镜像构建流程。
图4是本发明方法中的Ambari集群部署流程。
图5是本发明方法中的Ambari集群数据备份流程.
图6是本发明所述方法一种实施过程示意图。
图7是本发明一种可实施的Ambari集群容器状态图。
具体实施方式
本发明所提供的基于Docker技术的Ambari集群部署方法,包括以下步骤:构建Linux基础镜像、构建MySQL数据库镜像、构建Ambari基础镜像、Ambari集群部署;基于所述Ambari集群,进行初始数据备份。为了详细描述本发明的实施步骤,下面结合参考图1-图4做进一步描述。
配置Docker环境,在后续步骤涉及的所有服务器上安装和配置Docker环境;
S1,构建Linux基础镜像,参考图2;
S11,从官方的Ubuntu镜像中选择并拉取指定的镜像版本,可选的,在实际应用时,可通过S12和S13两个步骤配置实现Ubuntu镜像的本地化,便于后续使用;
S12,用户根据当地网络需求选择是否配置Linux系统的软件镜像源,在配置了所述软件镜像源后,更新软件列表以保证后续服务安装能正确执行;
S13,用户根据应用需求选择是否配置Linux系统的时区和支持的语言,如不设置,则会设置为默认的GMT+0时区和英文;
S14,S12和S13可配置参数设置完成后,开始构建Linux基础镜像用于后续步骤使用。
S2,构建MySQL数据库镜像,若用户已经具备了MySQL数据库,本发明支持使用自定义的MySQL数据库,若采用新的数据库,则按照S21~S23的方式构建MySQL数据库镜像;
S21,基于S1构建的Linux基础镜像,安装MySQL服务端;可选的,用户可根据实际需求配置MySQL数据库的参数;
S22,根据用户实际需求,配置MySQL数据库的字符集、最大连接数以及初始ROOT密码信息,其中初始ROOT密码需要指定,字符集和最大连接数为可选的,默认的数据库字符集为“UTF-8”,默认的最大连接数为500。
S23,基于S21和S22的配置列表,构建适合需求的MySQL数据库镜像,所述MySQL数据库镜像用于的Ambari集群部署和应用。
S3,构建Ambari基础镜像,参考图3;
S31,根据用户实际需求,配置指定版本的Ambari集群,Ambari集群的配置适用于Ambari Repo、Ambari Server和Ambari Agent的镜像构建;所述的Ambari Repo的配置目的在于快速的部署Ambari集群,避免网络连接或是误操作等原因造成的部署失败;
S32,基于S1构建的基础Linux镜像和S31配置的Ambari集群版本,开始构建AmbariRepo镜像,基于Ambari集群的官方源构建的本地镜像;首先,安装wget服务和httpd服务,其中wget服务用于下载官方源,httpd服务用于通过Apache2的方式发布本地源;然后依次下载与S31指定版本对应的Ambari源、HDP源和HDP-UTILS源,并且解压到指定的网页发布目录下;最后,删除下载的压缩文件,保证镜像不会过大,即得到Ambari Repo镜像;
S33,启动S32生成的Ambari Repo镜像,并且映射80端口,通过浏览器方式访问页面,能正确查看Ambari、HDP和HDP-UTILS的安装文件,则确定Ambari Repo镜像成功构建并启动,启动Ambari Repo镜像,用于构建Ambari Server和Ambari Agent镜像;
S34,基于S1构建的基础Linux镜像、S31指定的Ambari集群版本,构建AmbariServer镜像;首先安装Ambari Server部署和运行所需要的基础环境,所述基础环境包括wget、ntp、net-tools、ssh python、openjdk-8-jdk以及gnupg2;然后配置Ambari源,根据实际需求选择官方源或使用S33生成的Ambari Repo容器,Ambari源配置完成后更新Linux的软件列表,保证后续安装能正确执行;然后开始安装和配置Ambari Server服务,其中支持的配置选项包括Ambari数据库的连接地址、数据库名、表名以及Ambari数据库的用户名和密码;然后配置Ambari Server镜像的SSH免密登录,可选的,用户可根据实际需求生成可用的SSH密钥;最后添加Ambari Server镜像的初始化数据库脚本和启动脚本,得到AmbariServer镜像;
Ambari Server镜像的初始化数据库脚本包含Ambari服务本身的数据库初始化以及下属组件Hive和Ranger服务的数据库初始化操作;所述的数据库初始化操作主要包括了数据库创建、指定用户创建、字符类型设置与访问权限设置,所述的Ambari服务数据库初始化还包括了Ambari服务所需表格的创建;Ambari Server的数据库初始化脚本仅在Ambari及其下属组件服务的数据库不存在时生效,对已经初始化的Ambari集群没有影响。默认Ambari Server的数据库初始化脚本下的数据库为同一个MySQL数据库,并且执行AmbariServer的数据库初始化脚本需要配置MySQL数据库的ROOT用户密码和连接地址;可选的,可将所述的Ambari服务数据库,下属组件Hive、Ranger服务器数据库分别放在不同的MySQL数据库中;
Ambari Server的启动脚本为Ambari Server容器的启动入口点,启动SSH和NTP服务,配置Ambari Server容器的FQDN信息,根据环境变量判断功能是否执行,以及最后的启动Ambari Server服务;所述环境变量为启动Ambari Server时是否包含所述Ambari服务数据库的用户名与密码以及是否包含S32所述的Ambari源;若包含Ambari服务数据库的用户名与密码则执行所述的初始化数据库脚本;若包含S32所述的Ambari源,则更新Ambari镜像源,确保所述的Ambari源能够正确加载。
S35,基于S1构建的基础Linux镜像和S31配置的Ambari,构建Ambari Agent镜像;首先安装Ambari Agent部署和运行所需要的基础环境,包括wget、ntp、net-tools、sshpython、openjdk-8-jdk和gnupg2;然后配置Ambari源,可根据实际需求选择官方源或使用S33生成的Ambari Repo容器,Ambari Agent镜像配置完成后需要更新Linux的软件列表,保证后续安装能正确执行;然后安装和配置Ambari Agent服务,配置Ambari Agent镜像的SSH免密登录,Ambari Agent镜像的SSH密钥和S34中使用的密钥一致;然后配置OpenSSL服务,保证OpenSSL的版本与Ambari所要求的版本一致;最后添加Ambari Agent镜像的启动脚本,得到Ambari Agent镜像;
Ambari Agent的启动脚本为Ambari Agent容器的入口点,启动SSH和NTP服务,配置Ambari Agent容器的FQDN信息,根据环境变量1配置Ambari Server容器的hostname,根据环境变量2检测和修改HDFS本地数据文件的权限,挂载卷设置以及最后的启动AmbariAgent服务;所述的环境变量1为启动S34镜像时指定的Ambari Server名称;所述的环境变量2为HDFS本地数据文件在镜像中的目录位置,可选的,当服务器的挂载硬盘有多个时,所述的环境变量2也需指定多个目录位置。
S4,Ambari集群部署,参考图4;
S41,基于S22生成的MySQL镜像、S32生成的Ambari Repo镜像、S34生成的AmariServer镜像和S35生成的Ambari Agent镜像部署Ambari集群。在同一个Docker网络下启动的所有容器,保证容器之间可通过hostname互相访问;MySQL镜像、Ambari Repo镜像和Ambari Server镜像各启动一份得到对应的MySQL容器、Ambari Repo容器和Ambari Server容器,其中Ambari Server容器映射8080端口,保证能够访问Ambari管理页面;AmbariAgent镜像启动的Ambari Agent容器数量与用户待配置的集群节点数量相同,并且每个Ambari Agent容器均需要指定不同的hostname,容器配置文件设置完成后,即可启动容器;
S42,S41生成的容器启动完成后,访问Ambari管理页面,即可开始Ambari集群的部署过程。其中,Ambari源选择本地镜像源,并设置地址为S41中Ambari Repo容器的镜像源地址;待部署的节点列表即为S41中设置的Ambari Agent容器的hostname;配置的SSH私钥构建Ambari Server镜像和Ambari Agent镜像使用的SSH密钥;HDFS本地目录建议使用默认的文件目录,以便后续的HDFS文件挂载可以直接设置,可选的,若待部署的服务器中存在多个挂载硬盘等存储介质时,此处也可直接设置多个目录,便于后续操作;其他配置文件和服务组件参数根据实际需求选择;
S43,Ambari集群配置完成,待集群安装完成后,返回Ambari管理页面的主页,确认所有服务均正常运行后,Ambari集群部署完成;可选的,为确认安装成功,可通过命令行的方式进入容器内,根据S42中配置的服务组件列表逐个查看和测试服务功能;
可选的,在集群部署成功后,可通过Ambari的管理页面导出当前的配置文件,该配置文件为JSON格式,可用于Ambari集群的重新安装或是部署新的集群。
考虑服务器的安全性,S1-S4步骤仅需在任意一台联网的服务器上进行,基于所述步骤得到的Docker化Ambari集群可迁移到最终需要的服务器上,实现集群的离线化使用;
基于本发明所部署Ambari集群的数据备份方法,参考图5;
初始数据备份,基于本发明得到的Ambari集群,进入Ambari管理页面,确保所有组件均成功启动后,关闭集群,停止所有容器;保存当前状态的MySQL本地数据;提交当前状态的Ambari Agent容器为新的Ambari Node镜像,并且保存每个Ambari Agent容器的当前HDFS本地数据,其中每个Ambari Node镜像均对应一份HDFS本地数据。HDFS本地数据即为每个Ambari Node镜像的初始数据,可对这些初始数据进行备份,集群可使用初始数据的备份进行初始化;后续Ambari集群运行时,每个节点运行Ambari Node镜像时也需要挂载该镜像对应的HDFS本地数据。
参考图6,基于Ambari集群进行数据备份;
为保证在服务器上正确的运行Ambari集群,需要关闭各个服务器的防火墙或是允许Docker应用通过防火墙;
将初始数据备份的Ambari Node镜像及对应的HDFS本地数据分发到服务器各个节点,将MySQL镜像及对应的MySQL本地数据分发到指定的服务器A,将Ambari Server镜像分发到指定的服务器B,其中服务器A、服务器B和各个节点服务器均可重叠,所有镜像分发完毕后,在Docker集群的管理节点上配置每个镜像的运行节点、Ambari Node镜像和MySQL镜像的数据挂载目录和Ambari组件下各项服务的端口映射;节点镜像分发和配置完成后,即可将Ambari集群投入实际应用。
Ambari集群应用后,利用Docker容器的可恢复性,以及HDFS本地数据不依赖容器的特性,用户可通过定期备份HDFS本地数据和MySQL数据的方式,得到某一时刻的集群备份,便于后期维护。
一种基于Docker搭建的Ambari集群,包括服务器层、Docker网络层以及外部访问层;
服务器层是Ambari集群底层的软硬件支撑,包括多个通过局域网连通并且支持配置Docker环境的主机,通常主机的操作系统为Linux,可设定服务器层中的任意一个主机为主节点,服务器层中除主节点以外的主机为子节点,在主节点上部署MySQL容器和AmbariServer容器,在子节点部署Ambari Node容器;
Docker网络层是本系统的网络通信基础,服务器层中各个主机的Docker环境在初始时是独立的,需要通过Overlay网络构建Docker集群,Docker网络层由Overlay网络构成,Overlay网络采用Docker-Compose、Docker Swarm和Kubernetes服务创建和管理;
外部访问层是Ambari集群的应用层,包含外部访问Ambari集群及其下属服务的端口映射,管理人员可根据需求管理外部访问的应用及其端口,并且支持配置不同应用的访问权限等,用户则可根据管理人员设定的端口访问Ambari集群及其下属服务;
如图7所示,展示了最终的Docker化Ambari集群系统的容器状态图。整个系统可分为三层:第一层为服务器层,每个节点均为实体的服务器,在每个服务器上则部署着各自节点的容器及其挂载数据,其中MySQL容器和Ambari Server容器均部署在了主节点上,并且每个节点均部署了Ambari Node容器,根据具体需求,数据库容器可部署在其他服务器上;第二层为连通服务器节点的Docker网络,本实施例采用Docker Swarm创建的overlay网络;第三层为外部访问Ambari集群以及集群中所有服务页面的端口映射示例,Ambari集群本身包含了众多的功能模块,用户可根据实际应用场景对各个功能进行端口映射,从而在外部应用管理Ambari集群。
一种电子设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本发明所述基于Docker技术的Ambari集群部署方法以及基于本发明所述系统定期备份HDFS本地数据和MySQL数据。

Claims (10)

1.基于Docker技术的Ambari集群部署方法,其特征在于,包括如下步骤:
S1,在Docker环境下,基于原始的Linux操作系统镜像,根据应用环境配置好依赖环境,生成一个基础Linux镜像;
S2,基于S1得到的基础镜像,构建用于存储结构化数据的MySQL数据库镜像;
S3,基于S1得到的基础Linux镜像,配置指定Ambari集群的版本,先构建Ambari Repo镜像并启动,再构建Ambari Server镜像和Ambari Agent镜像,得到Ambari基础镜像;
S4,启动S2所得MySQL数据库镜像和S3得到的Ambari基础镜像,MySQL数据库镜像、Ambari Repo镜像和Ambari Server镜像各启动一份得到对应的MySQL容器、Ambari Repo容器和Ambari Server容器,Ambari Agent镜像启动数量与待配置的Ambari集群节点数量相同,每个Ambari Agent容器均指定不同的hostname,在同一个Docker网络下启动MySQL容器、Ambari Repo容器和Ambari Server容器,Ambari Server容器映射8080端口,访问Ambari管理页面,Ambari源选择本地镜像源,待部署的节点列表设置为Ambari Agent容器的hostname,配置SSH私钥,设置HDFS本地目录,Ambari集群配置完成后进行安装,然后返回Ambari管理页面的主页,确认所有服务均正常运行后,Ambari集群部署完成;
S1-S4在联网的条件下进行。
2.根据权利要求1所述的基于Docker技术的Ambari集群部署方法,其特征在于,
S11,从官方的Ubuntu镜像中选择并拉取指定的镜像版本;
S12,用户根据当地网络需求选择是否配置Linux系统的软件镜像源,在配置了软件镜像源后,更新软件列表以保证后续服务安装能正确执行;
S13,用户根据应用需求选择是否配置Linux系统的时区和支持的语言,如不设置,则会设置为默认的GMT+0时区和英文;
S14,S12和S13可配置参数设置完成后,构建Linux基础镜像。
3.根据权利要求1所述的基于Docker技术的Ambari集群部署方法,其特征在于,构建MySQL数据库镜像时,根据用户实际需求,先配置MySQL数据库的字符集、最大连接数以及初始ROOT密码信息,再基于S1构建的Linux基础镜像构建MySQL数据库镜像。
4.根据权利要求1所述的基于Docker技术的Ambari集群部署方法,其特征在于,S3中构建Ambari Repo镜像具体如下:首先安装wget服务和httpd服务,其中wget服务用于下载官方源,httpd服务用于通过Apache2的方式发布本地源;然后依次下载与指定Ambari集群的版本对应的Ambari源、HDP源和HDP-UTILS源,解压到指定的网页发布目录下;最后,删除下载的压缩文件,得到Ambari Repo镜像。
5.根据权利要求1所述的基于Docker技术的Ambari集群部署方法,其特征在于,S3中构建Ambari Server镜像具体如下:首先安装部署和运行所需要的基础环境;其次配置Ambari源,根据实际需求选择官方源或使用S33生成的Ambari Repo容器,Ambari源配置完成后更新Linux的软件列表,保证后续安装能正确执行;再开始安装和配置Ambari Server服务,其中支持的配置选项包括Ambari数据库的连接地址、数据库名、表名以及该数据库的用户名和密码;然后配置Ambari Server镜像的SSH免密登录;最后添加该镜像的初始化数据库脚本和启动脚本。
6.根据权利要求1所述的基于Docker技术的Ambari集群部署方法,其特征在于,
S3中构建Ambari Agent镜像具体如下:首先安装Ambari Agent部署和运行所需要的基础环境;其次配置Ambari源,选择官方源或使用S33生成的Ambari Repo容器,软件源配置完成后更新Linux的软件列表;再安装和配置AmbariAgent服务;配置AmbariAgent镜像的SSH免密登录,AmbariAgent镜像的SSH密钥和构建Ambari Server镜像使用的密钥一致;然后配置OpenSSL服务,OpenSSL的版本与Ambari所要求的版本一致;最后添加Ambari Agent镜像的启动脚本;
在Ambari Agent镜像的启动脚本中,配置挂载HDFS本地数据的权限配置和挂载配置功能。
7.基于权利要求1-6中任意一项所部署Ambari集群的数据备份方法,其特征在于,
初始数据备份,进入Ambari集群管理页面,确保所有组件均成功启动后,关闭Ambari集群,保存当前状态的MySQL本地数据,提交当前状态的Ambari Agent容器为新的AmbariNode镜像,并且保存每个Ambari Agent容器的当前HDFS本地数据,其中每个Ambari Node镜像均对应一份HDFS本地数据,所述HDFS本地数据即为每个AmbariNode镜像的初始数据,对每个Ambari Node镜像的初始数据进行备份,集群使用初始数据的备份进行初始化;Ambari集群运行时,每个节点运行Ambari Node镜像时挂载Ambari Node镜像对应的HDFS本地数据。
8.根据权利要求7所述的数据备份方法,其特征在于,将初始数据备份的AmbariNode镜像及对应的HDFS本地数据分发到服务器各个节点,将MySQL镜像及对应的MySQL本地数据分发到指定的服务器A,将Ambari Server镜像分发到指定的服务器B,其中服务器A、服务器B和各个节点服务器均可重叠,所有镜像分发完毕后,在Docker集群的管理节点上配置每个镜像的运行节点、Ambari Node镜像的数据挂载目录、MySQL镜像的数据挂载目录和Ambari组件下各项服务的端口映射。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1-6任一项所述基于Docker技术的Ambari集群部署方法。
10.根据权利要求9所述的电子设备,包括存储器、处理器及存储在存储器上并可以在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现基于权利要求7或8所述数据备份方法。
CN202010358998.8A 2020-04-29 2020-04-29 基于Docker技术的Ambari集群部署、数据备份方法及电子设备 Active CN111538625B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010358998.8A CN111538625B (zh) 2020-04-29 2020-04-29 基于Docker技术的Ambari集群部署、数据备份方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010358998.8A CN111538625B (zh) 2020-04-29 2020-04-29 基于Docker技术的Ambari集群部署、数据备份方法及电子设备

Publications (2)

Publication Number Publication Date
CN111538625A true CN111538625A (zh) 2020-08-14
CN111538625B CN111538625B (zh) 2023-03-28

Family

ID=71977386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010358998.8A Active CN111538625B (zh) 2020-04-29 2020-04-29 基于Docker技术的Ambari集群部署、数据备份方法及电子设备

Country Status (1)

Country Link
CN (1) CN111538625B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272237A (zh) * 2020-10-27 2021-01-26 北京天融信网络安全技术有限公司 一种云桌面的镜像管理方法以及镜像管理装置
CN112738112A (zh) * 2020-12-30 2021-04-30 北京浪潮数据技术有限公司 基于Ambari的第三方组件的访问方法、装置及介质
CN113347066A (zh) * 2021-08-04 2021-09-03 苏州浪潮智能科技有限公司 请求处理方法、Ambari架构、设备及可读存储介质
CN113590257A (zh) * 2021-06-19 2021-11-02 济南浪潮数据技术有限公司 一种基于容器的数据库容灾的方法、系统、设备及介质
CN114039848A (zh) * 2021-09-30 2022-02-11 济南浪潮数据技术有限公司 一种实现InCloudInsight管理平台高可用的方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139510A1 (zh) * 2014-03-19 2015-09-24 福建福昕软件开发股份有限公司 一种集群部署方法
CN106325975A (zh) * 2016-09-09 2017-01-11 浪潮软件股份有限公司 一种利用Docker容器自动化部署与管理大数据集群的方法
WO2017045424A1 (zh) * 2015-09-18 2017-03-23 乐视控股(北京)有限公司 一种应用程序部署系统及部署方法
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN107026760A (zh) * 2017-05-03 2017-08-08 联想(北京)有限公司 一种故障修复方法及监控节点

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139510A1 (zh) * 2014-03-19 2015-09-24 福建福昕软件开发股份有限公司 一种集群部署方法
WO2017045424A1 (zh) * 2015-09-18 2017-03-23 乐视控股(北京)有限公司 一种应用程序部署系统及部署方法
CN106325975A (zh) * 2016-09-09 2017-01-11 浪潮软件股份有限公司 一种利用Docker容器自动化部署与管理大数据集群的方法
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN107026760A (zh) * 2017-05-03 2017-08-08 联想(北京)有限公司 一种故障修复方法及监控节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李杰等: "Hadoop分布式集群的自动化容器部署研究", 《计算机应用研究》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272237A (zh) * 2020-10-27 2021-01-26 北京天融信网络安全技术有限公司 一种云桌面的镜像管理方法以及镜像管理装置
CN112272237B (zh) * 2020-10-27 2022-09-23 北京天融信网络安全技术有限公司 一种云桌面的镜像管理方法以及镜像管理装置
CN112738112A (zh) * 2020-12-30 2021-04-30 北京浪潮数据技术有限公司 基于Ambari的第三方组件的访问方法、装置及介质
CN113590257A (zh) * 2021-06-19 2021-11-02 济南浪潮数据技术有限公司 一种基于容器的数据库容灾的方法、系统、设备及介质
CN113347066A (zh) * 2021-08-04 2021-09-03 苏州浪潮智能科技有限公司 请求处理方法、Ambari架构、设备及可读存储介质
CN114039848A (zh) * 2021-09-30 2022-02-11 济南浪潮数据技术有限公司 一种实现InCloudInsight管理平台高可用的方法、装置及设备

Also Published As

Publication number Publication date
CN111538625B (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
CN111538625B (zh) 基于Docker技术的Ambari集群部署、数据备份方法及电子设备
CN111193782B (zh) Paas云集群构建方法、装置以及电子设备、存储介质
Lowe Mastering vmware vsphere 5
US8935216B2 (en) Automated computing appliance cloning or migration
US8892700B2 (en) Collecting and altering firmware configurations of target machines in a software provisioning environment
CN111782232A (zh) 集群的部署方法、装置、终端设备及存储介质
EP1635257A2 (en) System method and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
US20100306337A1 (en) Systems and methods for cloning target machines in a software provisioning environment
CN102591679A (zh) 一种集群系统应用软件快速部署方法
US9847903B2 (en) Method and apparatus for configuring a communication system
CN114116909A (zh) 一种分布式云原生数据库管理方法和系统
US11461110B2 (en) Systems and methods for automated and distributed configuration of computing devices
CN111913719B (zh) 高可用软件的部署方法、设备、装置和计算机存储介质
CN112114746A (zh) 一种分布式存储集群的自动化部署方法
Khalel et al. Enhanced load balancing in kubernetes cluster by minikube
Ifrah et al. Deploy a containerized application with amazon EKS
US10768985B1 (en) Active directory organizational unit-based deployment of computing systems
CN113938382B (zh) 基于pacemaker的集群管理方法、系统及存储介质
CN112087517B (zh) 存储集群的处理方法及处理装置、电子设备
CN115934113A (zh) 基于pxe的操作系统安装方法、装置、设备及存储介质
Jadhav Configuration and automation of OpenStack deployment
Malcher et al. Installing the Oracle Binaries
CN116719535A (zh) Oracle RAC部署方法及装置
US20110060815A1 (en) Automatic attachment of server hosts to storage hostgroups in distributed environment
CN116860263A (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