一种基于模型的Hadoop部署以及配置方法

文档序号:9506013阅读:388来源:国知局
一种基于模型的Hadoop部署以及配置方法
【技术领域】
[0001]本发明涉及Hadoop生态系统软件部署与配置,特别是一种基于模型的Hadoop部署以及配置方法。
【背景技术】
[0002]Hadoop是一个开源的分布式数据处理软件框架。它以一种可靠的、有效的和容易扩展的方式处理数据。在使用实践中,管理员需要根据不同的管理需求以不同的方式部署和配置Hadoop集群,这是一个使用Hadoop服务的主要障碍。这个障碍主要可以分为两部分:
一方面,Hadoop 服务非常多样,比如 HDFS、Map-Reduce、Hbase、Hive、Yarn、Flume、Spark、Storm、Zookeeper等等。每个服务都有它自己不同于其他服务的管理接口。管理员必须熟悉这些接口才能部署和配置这些服务,这就增加了集群结构的复杂性。
[0003]另一方面,虽然已经有一些管理工具能帮助管理员自动化的构造Hadoop集群,但是它们通常都只提供了一个固定的部署方案。为了满足不同的管理需求,则需要大量的手工实现来调整和扩展部署和配置的过程。

【发明内容】

[0004]本发明的目的在于提供一种基于模型的Hadoop部署以及配置方法,以克服现有技术中存在的缺陷。
[0005]为实现上述目的,本发明的技术方案是:一种基于模型的Hadoop部署以及配置方法,按照如下步骤实现:
步骤S1:将用以描述用户需要的服务模型以及用以描述计算资源的云模型作为一Hadoop集群的自动化部署以及配置规则引擎的输入;
步骤S2:对Hadoop集群的自动化部署以及配置规则进行设定,并作为可重用资源进行固化;
步骤S3:根据所述Hadoop集群的自动化部署以及配置规则,结合所述服务模型以及所述云模型,生成Hadoop集群的自动化部署以及配置方案;
步骤S4:根据所述Hadoop集群的自动化部署以及配置方案,调用API在基础设施上部署Hadoop集群,得到更新后的、用以描述Hadoop集群服务层实时状态信息的服务模型以及用以描述Hadoop集群部署结果与实时状态信息的部署模型。
[0006]在本发明一实施例中,在所述步骤S2中,所述Hadoop集群的自动化部署以及配置规则包括:不同类型的机型在所有使用的计算节点个数中占用的个数、不同的角色占有的计算节点的范围、不同角色间以及组件与不同类型计算节点间的依赖关系、不同服务组件间的互斥关系以及所选服务的参数配置。
[0007]在本发明一实施例中,在所述步骤S3中,通过如下步骤生成所述Hadoop集群的自动化部署以及配置方案: 步骤S31:初始化所述Hadoop集群的自动化部署以及配置规则,从所述Hadoop集群的自动化部署以及配置规则中去除所述服务模型中不包括的Hadoop服务;
步骤S32:获取计算节点列表;从所述云模型中,获取若干个由所述服务模型中Cluster元素的AllHostNum属性限定的计算节点列表HostList ;
步骤S33:处理角色之间的依赖关系;
步骤S34:处理角色之间的互斥关系;
步骤S35:处理每个角色的数量限制;
步骤S36:处理服务参数配置;
步骤S37:输出最终的所有角色的计算节点列表以及参数配置列表;
步骤S38:算法结束。
[0008]在本发明一实施例中,所述角色为Hadoop服务组件。
[0009]在本发明一实施例中,在所述步骤S33中,还包括如下步骤:
步骤S331:处理所述角色与所述计算节点列表中计算节点类型之间的依赖;
步骤S332:处理所述角色之间的依赖;
步骤S333:将剩下的且不存在依赖关系的角色的计算节点列表初始化为HostList。
[0010]在本发明一实施例中,在所述步骤S34中,还包括如下步骤:
步骤S341:获取存在互斥关系角色的交集节点;
步骤S342:获取每个角色的数量限制,包括最小限定值以及最大限定值;
步骤S343:分别去除每个角色的交集节点,且当去除后节点的个数小于每个角色对应的最小限定值时,用交集节点补足;
步骤S344:按照每个角色对应的最小限定值以及最大限定值差额的比例分配交集节点中的剩余节点。
[0011]在本发明一实施例中,在所述步骤S35中,循环检查每个角色对应的节点列表,根据所述Hadoop集群的自动化部署以及配置规则中设定的数量的限制,包括最小限定值以及最大限定值,判断每个角色对应的节点列表长度与该角色对应的最小限定值以及最大限定值之间的关系;若角色对应的列表长度小于角色的最小限定值,则报错,转至所述步骤S38,算法结束;若角色对应的列表长度大于角色的最大限定值,则去除超过最大限定值的节点个数,使得该列表的列表长度等于最大限定值。
[0012]在本发明一实施例中,在所述步骤S36中,为每个角色维护一个参数配置列表RoleConfList,将所述Hadoop集群的自动化部署以及配置规则中设定的参数配置存放至对应角色的参数配置列表中。
[0013]相较于现有技术,本发明具有以下有益效果:本发明所提出的一种基于模型的Hadoop部署以及配置方法,根据当前Hadoop部署和配置的领域知识,提出了 Hadoop软件体系机构的统一模型,在这个统一模型的基础上,进一步提出了一个可以定义一系列规则的规则引擎,通过这个规则引擎领域专家可以很好的描述他们的Hadoop部署和配置的解决方案,从而这些专家们给出的部署和配置需要遵循的规则将可以被视为可重用的资源,管理员可以用复用这些规则,驱动规则引擎,从而根据不同的需求自动部署和配置他们的Hadoop集群。为管理者提供了一种简单且功能强大的Hadoop集群构建方式,该方法极大地简化了部署和配置过程,提高了 Hadoop部署和配置的效率。
【附图说明】
[0014]图1为本发明中基于模型的Hadoop部署以及配置方法中服务模型的模型图。
[0015]图2为本发明中基于模型的Hadoop部署以及配置方法中部署模型的模型图。
[0016]图3为本发明中基于模型的Hadoop部署以及配置方法中云环境中不同主机类型的资源配置图。
[0017]图4为本发明中基于模型的Hadoop部署以及配置方法中云模型的模型图。
[0018]图5为本发明中基于模型的Hadoop部署以及配置方法的流程图。
[0019]图6为本发明一实施例中基于“Spark-On-YARN”规则方案的部署以及配置模型图。
【具体实施方式】
[0020]下面结合附图,对本发明的技术方案进行具体说明。
[0021]为了在体系结构层管理Hadoop集群,首先定义一组Hadoop软件体系的统一模型,包括服务模型,部署模型和云模型。服务模型提供了 Hadoop服务的统一视图,管理员可以在服务模型里定义需求的Hadoop服务和它们的配置,比如HDFS、Map-RudeCe、HIVE等;部署模型提供了 Hadoop集群部署单元的统一视图,从该视图里可以清楚地看到某个Hadoop服务的各个组件分别部署在哪些计算节点上;云模型则提供了云中可用的计算资源的统一视图。
[0022]服务模型中描述了许多不同的Hadoop服务。如图1所示,可以看到服务模型中的各个元素:Accounts元素代表了一个管理员账户列表,并且其下包含了描述了管理员基本信息的Account元素;Account元素下面又包括了一个Clusters元素列表;Clusters元素下面包含了一个描述基本集群信息的Cluster元素列表;其中,Cluster元素的Solut1n属性定义了该集群的部署解决方案的选择,AllHostNum属性则定义了将会用于部署Hadoop集群的计算节点的数量;从Cluster元素往下是功能元素,功能元素包括DataStore, ResourceManager, DataAcquisit1n, DataSychronism 等;每个功會泛元素又包括多个服务元素,比如有HDFS、YARN、flume、Spark等。
[0023]管理员可以在正式开始部署Hadoop集群之前,对服务模型进行定义或设定,该服务模型反应了用户需要部署哪些Hadoop的服务。定义服务模型并成功通过本发明提供的方法在基础设施中部署和配置真实的Hadoop集群后,服务模型将会被更新,并实时反应运行时的Hadoop集群中各种服务的各种信息。
[0024]与服务模型不同,部署模型并不是由用户提供的,而是在利用本发明的方法自动完成Hadoop集群的部署和配置时,得到的一个模型。该部署模型能够真实反映系统中Hadoop每个服务的各个组件的数量,以及部署在各个计算节点上的具体情况。例如,HDFS服务包含了三个组件,分别是 HDFSNameNode、HDFSSecondaryNameNode 和 HDFSDataNode,他们分布在不同的计算节点上,并且HDFSNameNode、HDFSSecondaryNameNode均有且只有一个,而HDFSDataNode有多个。部署模型图如图2所示。
[0025]与服务模型和部署模型都不同,云模型既不是用户定义的,也不是部署任务完成后得到的,而是一开始就有的。它反映了云环境中可用的计算资源。在本实施例的云模型中,包含了 6种不同类型的计算节点,他们分别具有不同的计算资源。这6种机型分别是:Small、Medium、Large、High-Memory、Hi gh-Storage 和 High-CPU。详细的资源配置如图 3所示,模型图如图4所示。
[0026]在上述Hadoop软件体系结构统一模型概念的基础上,本发明提出一种基于模型的Hadoop部署以及配置方法,通过结合上述的模型就能够实现Hadoop集群的自动化部署和配置,如图5所示,具体按照如下步骤实现:
步骤S1:将用以描述用户需要的服务模型以及用以描述计算资源的云模型作为一Hadoop集群的自动化部署以及配置规则引擎的输入;
步骤S2:对Hadoop集群的自动化部署以及配置规则进行设定,并作为可重用资源进行固化;
步骤S3:根据所述Hadoop集群的自动化部署以及配置规则,结合所述服务模型以及所述云模型,生成Hadoop集群的自动化部署以及配置方案;
步骤S4:根据所述Hadoop集群的自动化部署以及配置方案,调用API在基础设施上部署Hadoop集群,得到更新后的、用以描述Hadoop集群服务层实时状态信息的服务模型以及用以描述Hadoop集群部署结果与实时状态信息的部署模型。
[0027]进一步的,在本实施例中,作为输入的服务模型只是在服务层描述了需要部署的Hadoop服务(HDFS、Map_Reduce、Hive等)以及需要用到的计算资源(通过AllHostNum计算节点数量),而具体的部署和配置细节,如计算节点用什么资源配置的机型、HDFS部署在哪几个节点上、HDFS的组件数量有多少等,则需要通过规则引擎来解决。在规则引擎中,用一个XML文件来定义具体的部署和配置需要遵循的规则,并且当规则定义完成时,将可以作为一个可重用的资源固化下来,以供具有相同需求的用户重复利用。在本实施例中,角色为Hadoop服务组件。
[0028]如下程序所示,在所述步骤S2中,所述Hadoop集群的自动化部署以及配置规则包括:
(1)不同类型的机型在所有使用的计算节点个数中占用的个数;如下程序所示,在该方案中,small机型使用的个数为总个数减1个,medium机型使用的个数为1个。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1