CN111538625A - 基于Docker技术的Ambari集群部署、数据备份方法及电子设备 - Google Patents
基于Docker技术的Ambari集群部署、数据备份方法及电子设备 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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技术在资源调度和环境管理方面具有非常大的优势,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所述数据备份方法。
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)
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)
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 | 联想(北京)有限公司 | 一种故障修复方法及监控节点 |
-
2020
- 2020-04-29 CN CN202010358998.8A patent/CN111538625B/zh active Active
Patent Citations (5)
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)
Title |
---|
李杰等: "Hadoop分布式集群的自动化容器部署研究", 《计算机应用研究》 * |
Cited By (6)
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 |