组件处理方法和装置制造方法及图纸

技术编号:22114041 阅读:25 留言:0更新日期:2019-09-18 00:13
本申请提供了组件处理方法和装置。本申请中,将原生的RPM包分解以最终转换为TAR包,并且在RPM包转换为TAR包的过程中会将RPM包中组件依赖关系包含的组件版本信息删除,弱化组件之间的耦合要求,这样,能够实现单个组件的版本升级,并提供组件版本选择的灵活性。

Component Processing Method and Device

【技术实现步骤摘要】
组件处理方法和装置
本申请涉及大数据技术,特别涉及组件处理方法和装置。
技术介绍
大数据平台诸如Hortonworks的HDP(HortonworksDataPlatform)、cloudera的CDH(ClouderaDistributionIncludingApacheHadoop)平台等集成了大量的组件(开源组件),这些组件自成体系,可以独立安装部署,但功能相互依赖。以HDP为例描述大数据平台,HDP将各特定版本的组件制作成格式为RPM软件包管理器(RPM:RPMPackageManager)的RPM包,RPM包方便安装及管理。
技术实现思路
本申请提供了组件处理方法和装置,以实现组件版本选择的灵活性。本申请提供的技术方案包括:一种组件处理方法,该方法包括:从组件对应的RPM包中获取组件内容文件;从所述RPM包中获取安装卸载脚本信息,将获取的安装卸载脚本信息分类至对应的脚本文件;从所述RPM包中获取组件依赖关系,所述组件依赖关系中至少包含所述组件所依赖的其他组件的组件标识、组件版本信息;从所述组件依赖关系中删除组件版本信息,将删除了组件版本信息的组件依赖关系记录至配置文件;生成安装文件,所述安装文件为用于运行所述组件内容文件、脚本文件、配置文件的脚本文件;将所述组件内容文件、脚本文件、配置文件、安装文件打包成所述组件对应的格式为TAR的TAR包。一种组件处理装置,该装置包括:组件内容文件获取单元,用于从组件对应的RPM包中获取组件内容文件;脚本获取单元,用于从所述RPM包中获取安装卸载脚本信息,将获取的安装卸载脚本信息分类至对应的脚本文件;组件依赖关系获取单元,用于从所述RPM包中获取组件依赖关系,所述组件依赖关系中至少包含所述组件所依赖的其他组件的组件标识、组件版本信息;从所述组件依赖关系中删除组件版本信息,将删除了组件版本信息的组件依赖关系记录至配置文件;安装文件生成单元,用于生成安装文件,所述安装文件为用于运行所述组件内容文件、脚本文件、配置文件的脚本文件;TAR包处理单元,用于将所述组件内容文件、脚本文件、配置文件、安装文件打包成所述组件对应的格式为TAR的TAR包。由以上技术方案可以看出,本申请中,通过将RPM包转换成了TAR包。而TAR包相对于RPM包,容易操作,则实现了即使对组件进行变化及扩展时,通过对组件的TAR包即可实现,操作容易;进一步地,在本申请中,最终转换成的TAR包相比RPM包少了所依赖的组件的组件版本信息,这弱化组件之间的耦合要求,能够实现单个组件的版本升级,并提供组件版本选择的灵活性,也能解决版本定制化的需求。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1为本申请提供的方法流程图;图2为本申请提供的步骤101实现流程图;图3为本申请提供的安装流程图;图4为本申请提供的装置结构图。具体实施方式在HDP中,HDP将组件的依赖关系放入组件的RPM包,这也意味着HDP中各组件RPM建立了一张依赖关系网,缺一不可,难以变动。组件的依赖关系中包含依赖的组件的组件标识、组件版本等。基于稳定性考虑,各组件的组件版本一般偏低,而当在实际应用中基于需求需要提升某一组件的组件版本时,因为组件之间的依赖关系,会导致相依赖的其他组件的组件版本也相应变化,进而导致版本发生变化的组件的RPM包需要发生变化。虽然RPM包方便安装及管理,但是,RPM包制作非常复杂,而当版本发生变化的组件的RPM包需要发生变化时,很难基于该变化对RPM包执行相应操作,操作复杂。为了解决上述问题,本申请中,通过对RPM包分解的方式将RPM包转换为格式为TAR的TAR包。TAR包相对于RPM包而言,容易操作。下面通过图1所示的流程描述如何通过对RPM包分解的方式实现RPM包转换为TAR包:参见图1,图1为本申请提供的方法流程图。如图1所示,该流程可包括以下步骤:步骤101,从组件的RPM包中获取组件内容文件。作为一个实施例,组件内容文件具体包含组件运行脚本、组件配置信息、组件依赖的jar包等。至于如何从组件对应的RPM包中获取组件内容文件,下述图2所示流程进行了描述,这里暂不赘述。步骤102,从所述RPM包中获取安装卸载脚本信息,将获取的安装卸载脚本信息分类至对应的脚本文件。在HDP中,RPM包实际是一种压缩包格式为RPM的数据包,其除了集成组件内容文件之外,还集成了更多的额外信息。该额外信息大致分类两类,一类为:安装卸载脚本信息,另一类为组件依赖关系(其在步骤103中进行描述)。其中,组件内容文件、安装卸载脚本信息、组件依赖关系的获取方式不同,通过步骤101中获取组件内容的方式是不能获取到安装卸载脚本信息、组件依赖关系。同样,通过本步骤102中获取安装卸载脚本信息的方式也是不能获取到组件内容文件、组件依赖关系的。作为一个实施例,从所述RPM包中获取安装卸载脚本信息为:通过指定的脚本查看命令获取安装卸载脚本信息。在一个例子中,指定的脚本查看命令举例为:Linux系统的rpm-qp--script命令。作为一个实施例,安装卸载脚本信息可能包含:与组件安装对应的脚本信息、与组件卸载对应的脚本信息。其中,作为一个实施例,与组件安装对应的脚本信息可为:RPM包安装前运行的脚本信息(记为preinstall)、RPM包安装后运行的脚本信息(记为postinstall);与组件卸载对应的脚本信息可为:RPM包卸载前运行的脚本信息(记为preuninstall)、RPM包卸载后运行的脚本信息(记为postuninstall)。这里,preinstall主要用于置环境变量等,postinstall主要用于设置软连接等,preuninstall主要用于清理之前配置的环境变量等,postuninstall主要用于清理RPM包卸载后剩余的数据文件等。作为一个实施例,上述获取的不同类的脚本信息可通过分隔标签隔开,基于此,本步骤102中,基于分割标签并通过手工方式将获取的不同类的脚本信息分类至对应的脚本文件。作为另一个实施例,本步骤102中,也可基于分割标签并通过编写的shell脚本自动将获取的不同类的脚本信息输出至对应的脚本文件,比如,将preinstall对应输出至preinstall脚本文件(preinstall.sh)、将postinstall对应输出至postinstall脚本文件(postinstall.sh)、将preuninstall对应输出至preuninstall脚本文件(preuninstall.sh)、将postuninstall对应输出至postuninstall脚本文件(postuninstall.sh)。步骤103,从RPM包中获取组件依赖关系,从所述组件依赖关系中删除组件版本信息,将删除了组件版本信息的组件依赖关系记录至已定义的配置文件(记为metainfo.xml)。所谓RPM包的组件依赖关系,其实质是安装RPM包的先决条件,意思是指:在安装RPM包之前,必须先依据安装RPM包的组件依赖关系安装好所依赖的数据包,才能正常安装RPM包。作为一个实施例,依赖的数据包在应用中可包含:系统RPM包和其他组件的RPM包(相当于外部软件包)本文档来自技高网...

【技术保护点】
1.一种组件处理方法,其特征在于,该方法包括:从组件对应的RPM包中获取组件内容文件;从所述RPM包中获取安装卸载脚本信息,将获取的安装卸载脚本信息分类至对应的脚本文件;从所述RPM包中获取组件依赖关系,所述组件依赖关系中至少包含所述组件所依赖的其他组件的组件标识、组件版本信息;从所述组件依赖关系中删除组件版本信息,将删除了组件版本信息的组件依赖关系记录至配置文件;生成安装文件,所述安装文件为用于运行所述组件内容文件、脚本文件、配置文件的脚本文件;将所述组件内容文件、安装卸载脚本信息对应的脚本文件、配置文件、安装文件打包成所述组件对应的格式为TAR的TAR包。

【技术特征摘要】
1.一种组件处理方法,其特征在于,该方法包括:从组件对应的RPM包中获取组件内容文件;从所述RPM包中获取安装卸载脚本信息,将获取的安装卸载脚本信息分类至对应的脚本文件;从所述RPM包中获取组件依赖关系,所述组件依赖关系中至少包含所述组件所依赖的其他组件的组件标识、组件版本信息;从所述组件依赖关系中删除组件版本信息,将删除了组件版本信息的组件依赖关系记录至配置文件;生成安装文件,所述安装文件为用于运行所述组件内容文件、脚本文件、配置文件的脚本文件;将所述组件内容文件、安装卸载脚本信息对应的脚本文件、配置文件、安装文件打包成所述组件对应的格式为TAR的TAR包。2.根据权利要求1所述的方法,其特征在于,所述从组件对应的RPM包中获取组件内容文件进一步包括:将所述组件内容文件打包成格式为TAR的TAR子包;所述将组件内容文件、安装卸载脚本信息对应的脚本文件、配置文件、安装文件打包成所述组件对应的格式为TAR的TAR包包括:将所述TAR子包、安装卸载脚本信息对应的脚本文件、配置文件、安装文件打包成格式为TAR的TAR包。3.根据权利要求1所述的方法,其特征在于,所述从组件对应的RPM包中获取组件内容文件包括:将所述RPM包转换为格式为cpio格式的cpio包;通过指定的cpio命令获取所述cpio包中的组件内容文件。4.根据权利要求1所述的方法,其特征在于,所述从RPM包中获取安装卸载脚本信息包括:通过指定的脚本查看命令获取安装卸载脚本信息。5.根据权利要求1所述的方法,其特征在于,所述从RPM包中获取RPM包的组件依赖关系包括:通过指定的依赖信息查看命令获取所述RPM包中的组件依赖关系。6.根据权利要求1所述的方法,其特征在于,该方法进一步包括:将所述TAR包存放至大数据集群中的指定服务器节点,以使所述指定服务器节点通过分析各组件TAR包中的配置文件得到服务注册信息;服务注册信息包含:各组件所依赖的其他组件的组件标识;所述指定服务器节点根据获取的待安装组件、待安装组件安装至的各服务器节点,并结合所述服务注册...

【专利技术属性】
技术研发人员:潘鹏
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1