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

文档序号:9506013阅读:来源:国知局
HostList.remove(ABHostList.get (i));
}
for (int i=0;i〈addToB&&i〈gapB;i++){
BHostList.add(TmpHostList.get(i));
}
}
System, out.println (〃A’: 〃+AHostList);
System, out.println (〃BJ: 〃+BHostList);
}
}
privatevoid InitialRemainingRoles(){
for (Element Role: (List〈Element>)this.NumberOfRolesEle.elements 0)
{
if (!RoleHostsMap.containsKey(Role.getName())) {
ArrayList<String> tmp=new ArrayList<String> ();tmp.addAll(HostsList);
RoleHostsMap.put (Role.getName (),tmp);
}
}
//System, out.println("After InitialRemainingRoles, the RoleHostsMap
is
//System, out.println(RoleHostsMap);}
privatevoid DealNumberOfRoles() {
int Min=0, Max=0;int HostListSize=0; for (Element NumberOfRoles: (List〈Element>)this.NumberOfRolesEle.elements 0) {
Min= (int) new Calculator ().calculate(NumberOfRoles.attributeValue(〃MinNumber〃).replaceAll (〃AllHostsNum〃,〃〃+this.AllHostNum));
Max= (int) new Calculator ().calculate(NumberOfRoles.attributeValue(〃MaxNumber〃).replaceAll (〃AllHostsNum〃,〃〃+this.AllHostNum));
HostListSize=RoleHostsMap.get(NumberOfRoles.getName()).size ();if (HostListSize>Max) {
for (int i=0;i〈HostListSize_Max;i++) {
RoleHostsMap.get(NumberOfRoles.getName()).remove(0);
}
}elseif (HostListSize〈Min){ try {
thrownew Except1n(^Error, the number of hosts isnot enough.\n The error is found when Deal the Number Of 〃+NumberOfRoles.getName ());
} catch (Except1n e) {
// TODO Auto-generated catch blocke.printStackTrace ();
System, exii(0);
}
}
}
//System, out.println("After DealNumberOfRoles, the RoleHostsMap is:?;
//System, out.println(RoleHostsMap);
}
privatevoid DealConfigurat1ns(){
for (Element ConfigEle: (List〈Element>)this.ConfigsEle.elements 0) Iif (ConfigsMap.containsKey (ConfigEle.attributeValue (〃ServiceName〃))){
ConfigsMap.get(ConfigEle.attributeValue(〃ServiceName〃)).put (ConfigEle.attributeValue (〃Key〃),ConfigEle.attributeValue (〃Value〃));
}else {
HashMap〈String,String〉 ServiceConfigs = new HashMap〈String,
String)(); ServiceConfigs.put(ConfigEle.attributeValue (〃Key〃),ConfigEle.attributeValue(〃Value〃));
ConfigsMap.put(ConfigEle.attributeValue(〃ServiceName〃),
ServiceConfigs);
}
}
//System, out.println(ConfigsMap);
}
publicstaticvoid main(String[] args) {
SAXReader reader = new SAXReader();
Document document=null; try {
document = reader, read (new File (〃src/Spark-On_YARN.xml〃));
} catch (DocumentExcept1n e) {
// TODO Auto-generated catch block e.printStackTrace ();
}
GenerateDeployResult test = new GenerateDeployResult(20,document); test.Generate ();
}
}
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
【主权项】
1.一种基于模型的Hadoop部署以及配置方法,其特征在于,按照如下步骤实现: 步骤S1:将用以描述用户需要的服务模型以及用以描述计算资源的云模型作为一Hadoop集群的自动化部署以及配置规则引擎的输入; 步骤S2:对Hadoop集群的自动化部署以及配置规则进行设定,并作为可重用资源进行固化; 步骤S3:根据所述Hadoop集群的自动化部署以及配置规则,结合所述服务模型以及所述云模型,生成Hadoop集群的自动化部署以及配置方案; 步骤S4:根据所述Hadoop集群的自动化部署以及配置方案,调用API在基础设施上部署Hadoop集群,得到更新后的、用以描述Hadoop集群服务层实时状态信息的服务模型以及用以描述Hadoop集群部署结果与实时状态信息的部署模型。2.根据权利要求1所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,在所述步骤S2中,所述Hadoop集群的自动化部署以及配置规则包括:不同类型的机型在所有使用的计算节点个数中占用的个数、不同的角色占有的计算节点的范围、不同角色间以及组件与不同类型计算节点间的依赖关系、不同服务组件间的互斥关系以及所选服务的参数配置。3.根据权利要求2所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,在所述步骤S3中,通过如下步骤生成所述Hadoop集群的自动化部署以及配置方案: 步骤S31:初始化所述Hadoop集群的自动化部署以及配置规则,从所述Hadoop集群的自动化部署以及配置规则中去除所述服务模型中不包括的Hadoop服务; 步骤S32:获取计算节点列表;从所述云模型中,获取若干个由所述服务模型中Cluster元素的AllHostNum属性限定的计算节点列表HostList ; 步骤S33:处理角色之间的依赖关系; 步骤S34:处理角色之间的互斥关系; 步骤S35:处理每个角色的数量限制; 步骤S36:处理服务参数配置; 步骤S37:输出最终的所有角色的计算节点列表以及参数配置列表; 步骤S38:算法结束。4.根据权利要求3所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,所述角色为Hadoop服务组件。5.根据权利要求4所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,在所述步骤S33中,还包括如下步骤: 步骤S331:处理所述角色与所述计算节点列表中计算节点类型之间的依赖; 步骤S332:处理所述角色之间的依赖; 步骤S333:将剩下的且不存在依赖关系的角色的计算节点列表初始化为HostList。6.根据权利要求4所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,在所述步骤S34中,还包括如下步骤: 步骤S341:获取存在互斥关系角色的交集节点; 步骤S342:获取每个角色的数量限制,包括最小限定值以及最大限定值; 步骤S343:分别去除每个角色的交集节点,且当去除后节点的个数小于每个角色对应的最小限定值时,用交集节点补足; 步骤S344:按照每个角色对应的最小限定值以及最大限定值差额的比例分配交集节点中的剩余节点。7.根据权利要求4所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,在所述步骤S35中,循环检查每个角色对应的节点列表,根据所述Hadoop集群的自动化部署以及配置规则中设定的数量的限制,包括最小限定值以及最大限定值,判断每个角色对应的节点列表长度与该角色对应的最小限定值以及最大限定值之间的关系;若角色对应的列表长度小于角色的最小限定值,则报错,转至所述步骤S38,算法结束;若角色对应的列表长度大于角色的最大限定值,则去除超过最大限定值的节点个数,使得该列表的列表长度等于最大限定值。8.根据权利要求4所述的一种基于模型的Hadoop部署以及配置方法,其特征在于,在所述步骤S36中,为每个角色维护一个参数配置列表RoleConfList,将所述Hadoop集群的自动化部署以及配置规则中设定的参数配置存放至对应角色的参数配置列表中。
【专利摘要】本发明涉及一种基于模型的Hadoop部署以及配置方法,将服务模型以及云模型作为Hadoop集群的自动化部署以及配置规则引擎的输入;对Hadoop集群的自动化部署以及配置规则进行设定;根据Hadoop集群的自动化部署以及配置规则,结合服务模型以及云模型,生成Hadoop集群的自动化部署以及配置方案,根据该方案,调用API在基础设施上部署Hadoop集群,得到更新后的服务模型以及部署模型。本发明所提出的一种基于模型的Hadoop部署以及配置方法,简化了部署和配置过程,提高了Hadoop部署和配置的效率。
【IPC分类】G06F9/445
【公开号】CN105260203
【申请号】CN201510620902
【发明人】陈星 , 郭文忠, 黄益成
【申请人】福州大学
【公开日】2016年1月20日
【申请日】2015年9月25日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1