发布信息

一种应用于国产化操作系统的大数据管理部署方法与流程 专利技术说明

作者:admin      2022-12-02 16:30:36     693



计算;推算;计数设备的制造及其应用技术1.本发明涉及一种应用于国产化操作系统之上的大数据管理服务部署方案。背景技术:2.随着国产化系统的不断推进和发展,目前适配诸如麒麟等的国产化系统已迫在眉睫。麒麟系统是arm架构系统(此架构系统由于其自身耗能低、经济等特点,深得人们的喜爱,特别是在将来的服务架构设计中,将会得到更好的推广和使用)。但大部分的生态系统都是部署在x86架构系统上,大数据管理服务、应用服务也不例外。当前国内外比较流行的大数据管理平台都是无法下载到arm架构系统适配版本的安装包。3.同时,目前现有的大数据管理系统也存在着一些不可忽略的缺陷:首先,安装过程比较复杂,有许多依赖服务需要手工安装、配置,难度较高,并且要求有一定的技术背景人员方可胜任,无法实现傻瓜式安装或者一键配置;第二,被托管的大数据应用服务种类受限,仅可安装套件内自带的大数据应用服务,无法安装套件外的服务;第三,仅支持x86架构系统的安装,不支持国产化系统的安装部署。以上大数据管理系统存在的缺陷都将会限制国产化大数据技术的发展。技术实现要素:4.本发明的一个目的是:解决目前市面无适配arm架构系统的大数据管理软件方案,且大数据管理软件安装复杂、对运维人员要求较高的问题。本发明进一步的目的是解决应用服务适配有限的问题。5.为了达到上述目的,本发明的技术方案是提供了一种应用于国产化操作系统的大数据管理部署方法,其特征在于,包括以下步骤:6.步骤1、在一台安装了国产操作系统的主机上下载ambari源码,同时安装ambari源码编译所需的依赖环境;7.步骤2、修改ambari源码,包括以下内容:8.修改安装脚本及配置文件:9.在$ambari-server/lib/ambari_commons/resources目录下的配置文件os_family.json中增加国产操作系统的描述信息;10.修改$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py,让脚本文件os_check.py能够识别到国产操作系统及国产操作系统的版本信息,保证安装顺利进行;11.修改大数据管理服务和代理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py,其中:12.修改脚本文件params.py,增加获取repo文件的base_url路径的逻辑代码,让安装大数据管理软件的脚本在安装过程中能够识别到yum源路径和url信息,用于应用服务组件的安装;13.修改脚本文件yum_manager.py中的yum_check_package_available方法,通过读取大数据管理软件的全局配置获取到hdp-select版本,用于校验大数据管理软件安装包是否被安装;14.修改脚本文件script.py的stack_version_placeholder参数,从大数据管理软件的全局配置中获取hdp的版本号信息,用于后面的执行脚本能够识别到hdp的版本信息;15.修改脚本文件os_check.py的os_distribution方法逻辑,从大数据管理软件的全局配置中读取对应的操作系统和操作系统的版本信息,用于大数据管理软件识别麒麟操作系统;16.修改脚本文件system.py的action_create方法,用于判断yum源下的repo配置文件是否和大数据管理软件启动时加载的配置文件内容相同,如果不同,则用新的yum源配置文件覆盖掉老的配置文件;17.修改ambari源码包中的*.pom描述文件和*.py可执行文件,将其中x86系统识别的关键字amd64和noarch手工替换为arm架构系统能够识别的关键字aarch64;18.修改管理服务和代理服务的脚本文件os_check.py、os_utils.py:19.修改脚本文件os_check.py的配置文件,修改get_ambari_repo_file_full_name方法中的ambari_repo_file属性,指定为从大数据管理软件全局配置中获取,用于正确识别大数据管理软件对应的yum源的配置路径;20.修改两个脚本文件os_utils.py的_get_os_type方法的operatingsystem属性,配置为centos,修改_get_os_version方法的type属性,配置为7,用于被大数据管理软件安装脚本识别;21.增加目录$ambari-server/resources/wdbdp/jdk,在新增加的$ambari-server/resources/wdbdp/jdk目录下增加脚本文件install.sh,脚本文件install.sh中编写以下逻辑:判断主机是否已经安装jdk,如果未安装,则自动调用yum install oracle-j2sdk1.8命令进行jdk的安装;22.修改$ambari-server/sbin目录下的ambari-server文件,在ambari-server文件中增加对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用;23.增加$ambari-server/resources/wdbdp/mysql目录,在新增的$ambari-server/resources/wdbdp/mysql目录下增加脚本文件install.sh和mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,在脚本文件install.sh中增加判断和安装mysql的逻辑,当判断出当前主机已经安装过mysql数据库,则跳过安装步骤,否则安装mysql数据库;24.增加$ambari-server/resources/wdbdp/mysql/init_script目录,在新增的$ambari-server/resources/wdbdp/mysql/init_script目录下增加ambari-ddl-mysql-create.sql文件;25.增加$ambari-server/src/main/python/wdb_dm目录,在新增的$ambari-server/src/main/python/wdb_dm目录下增加ambari-config.py文件,在ambari-config.py文件中编写代码进行用户自定义配置,配置大数据管理软件安装需要的数据库ip、数据库端口、数据库用户名、数据库密码、jdk安装路径、使用的数据库类型、mysql数据库驱动包路径、驱动包软链路径;26.在$ambari-server/sbin目录下的ambari-server文件中增加mysql选项,并在该mysql选项中调用$ambari-server/resources/wdbdp/mysql目录下的脚本文件install.sh以及$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,用于安装和配置数据库信息;27.步骤3、完成对ambari源码的修改之后,运行编译命令进行ambari源码编译,待编译完成后,提取出可执行的二进制文件ambari-server-2.x.y.0-0.aarch64.rpm和ambari-agent-2.x.y.0-0.aarch64.rpm,做成yum源,然后配置好大数据管理软件的yum源,供安装大数据管理软件使用;28.步骤4、执行yum install ambari-server命令进行大数据管理软件的安装,由于在ambari源码的$ambari-server/sbin目录下的ambari-server文件中增加了对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用,这样,在安装大数据管理软件的过程中,能够自动加载和自动检测并安装jdk;29.步骤5、执行ambari-server mysql命令进行一键配置,完成mysql数据库的检查、安装和配置过程,具体包括以下步骤:30.步骤501、给主机添加mysql用户组、mysql用户后,判断安装目录/usr/local/mysql、数据目录/mysqldata/mysql_$port以及日志目录/mysqldata/binlog_3306是否存在,不存在则自动创建;31.步骤502、删除国产操作系统自带的mariadb数据库,防止和即将安装的mysql数据库发生文件相互覆盖,导致mysql无法正常使用的冲突;32.步骤503、安装libaio库,设置安装目录、数据目录、日志目录的权限,解压ambari源码中$ambari-server/resources/wdbdp/mysql目录下的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,完成mysql数据库的安装;33.步骤504、配置/etc/my.cnf文件,启动mysql服务,修改mysql数据库的默认密码以及mysql数据库的访问权限,增加允许远程机器访问该mysql数据库;34.步骤505、调用ambari源码中$ambari-server/resources/wdbdp/mysql/init_script目录下的ambari-ddl-mysql-create.sql文件,初始化大数据管理软件安装配置过程中需要使用到的mysql数据库、表以及数据信息;35.步骤506、使用ambari源码包中的config类获取到大数据管理软件的默认配置,然后使用ambari源码中$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,将用户自定义配置覆盖掉默认配置并形成新的配置文件输出到系统路径/etc/ambari-server/conf/ambari.properties;同时,根据用户自定义配置中的mysql数据库驱动包路径,将该路径下的mysql数据库驱动包拷贝到系统的/usr/share/java目录下,并根据配置中的驱动包软链路径生成驱动包的软链接,用于大数据管理软件在初始化过程中被正确识别;36.步骤6、大数据管理软件运行后,将编写好的第三方插件放入大数据管理软件加载目录$ambari-server/resources/stacks/hdp/x.y/services下,重启大数据管理服务,就能够自动识别到第三方的应用服务和自定义应用服务,并可进行服务的安装、监控和管理。37.优选地,所述管理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py分别在以下目录下:38.$ambari-server/resources/stack-hooks/before-install/scripts;39.$ambari-server/lib/ambari_commons/repo_manager;40.$ambari-server/lib/resource_management/libraries/script;41.$ambari-server/lib/ambari_commons;42.$ambari-server/lib/resource_management/core/providers;43.所述代理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py分别在以下目录下:44.$ambari-agent/resources/stack-hooks/before-install/scripts;45.$ambari-agent/lib/ambari_commons/repo_manager;46.$ambari-agent/lib/resource_management/libraries/script;47.$ambari-agent/lib/ambari_commons;48.$ambari-agent/lib/resource_management/core/providers。49.优选地,管理服务的脚本文件os_check.py以及os_utils.py分别在以下目录下:50.$ambari-server/lib/ambari_commons;51.$ambari-server/lib/ambari_commons;52.管理代理服务的脚本文件os_check.py、os_utils.py分别在以下目录下:53.$ambari-agent/lib/ambari_commons;54.$ambari-agent/lib/ambari_commons。55.优选地,步骤6中,所述第三方插件为可执行的脚本、配置文件、安装包、模板,通过脚本代码自动处理第三方大数据应用服务的分发、安装、监控、服务依赖。56.采用本发明提供的方法后可以在运行国产操作系统(例如麒麟)的机器上安装大数据管理软件,并可以实现大数据管理软件的一键安装以及一键配置。更进一步,本发明增加各种开源的第三方应用服务和自定义应用服务,本领域技术人员可以根据实际项目需要自行安装除套件内自带的大数据应用服务以外的其他大数据应用服务。附图说明57.图1为本发明的整体编译流程图;58.图2为大数据管理软件一键配置流程图;59.图3为第三方/自定义应用服务装载流程图。具体实施方式60.下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所附权利要求书所限定的范围。61.本发明提供的一种应用于国产化操作系统的大数据管理部署方法基于以下本领域技术人员公知的技术术语:62.ambari:一种比较流行的用于管理部署大数据应用服务的系统软件。63.管理服务:用于管理部署大数据应用服务的服务,通过该服务可以监控到运行中的每个大数据应用服务的运行状态,服务状态以及各个服务消耗系统资源的情况等。64.代理服务:用于向管理服务上报消息,同时执行管理服务下发的执行命令的服务。65.大数据应用服务:具有特定功能的执行服务,例如存储服务、计算服务、任务调度服务、协调服务等。66.yum源:web应用服务器对应访问资源的存储仓库描述,用来描述需要访问的资源文件的存放路径,以及资源文件被访问的优先级,索引名称等。通过配置了yum源之后,就可以通过yum list xxx命令来搜索相关的资源文件,同时也可以对搜索到的资源文件进行相应的操作。例如:我们搜索java的运行环境软件包是否存在在源中,可以用过yum list jdk命令进行搜索,搜索到之后可以使用yum install jdk.aarch64命令来安装jdk软件。67.本实施例以应用于麒麟操作系统为例对本发明做进一步说明:68.在实施本发明之前需要一台安装了麒麟操作系统的机器(本发明中,也称为“主机”),并在该机器上下载ambari源码,同时安装ambari源码编译所需的依赖环境。69.本实施例公开的一种应用于国产化操作系统的大数据管理部署方法包括麒麟操作系统识别、版本识别、yum源识别以及大数据管理软件包的制作,具体包括以下步骤:70.第一步、修改ambari源码以实现大数据管理软件在装有麒麟操作系统的机器上的一键安装以及配置,包括以下内容:71.修改安装脚本及配置文件:72.在$ambari-server/lib/ambari_commons/resources目录下的配置文件os_family.json中增加麒麟系统的描述信息;73.修改$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py,让脚本文件os_check.py能够识别到麒麟操作系统及麒麟操作系统的版本信息,保证安装顺利进行;74.修改大数据管理服务和代理服务的脚本文件,其中,管理服务脚本文件包括:75.$ambari-server/resources/stack-hooks/before-install/scripts目录下的管理服务脚本文件params.py;76.$ambari-server/lib/ambari_commons/repo_manager目录下的管理服务脚本文件yum_manager.py;77.$ambari-server/lib/resource_management/libraries/script目录下的管理服务脚本文件script.py;78.$ambari-server/lib/ambari_commons目录下的管理服务脚本文件os_check.py;79.$ambari-server/lib/resource_management/core/providers目录下的管理服务脚本文件system.py;80.代理服务脚本文件包括:81.$ambari-agent/resources/stack-hooks/before-install/scripts目录下的代理服务脚本文件params.py;82.$ambari-agent/lib/ambari_commons/repo_manager目录下的代理服务脚本文件yum_manager.py;83.$ambari-agent/lib/resource_management/libraries/script目录下的代理服务脚本文件script.py;84.$ambari-agent/lib/ambari_commons目录下的代理服务脚本文件os_check.py;85.$ambari-agent/lib/resource_management/core/providers目录下的代理服务脚本文件system.py;86.修改管理服务脚本文件params.py以及代理服务脚本文件params.py,增加获取repo文件的base_url路径的逻辑代码,让安装大数据管理软件的脚本在安装过程中能够识别到yum源路径和url信息,用于应用服务组件的安装;87.修改管理服务脚本文件yum_manager.py以及代理服务脚本文件yum_manager.py中的yum_check_package_available方法,通过读取大数据管理软件的全局配置获取到hdp-select版本,用于校验大数据管理软件安装包是否被安装;88.修改管理服务脚本文件script.py以及代理服务脚本文件script.py的stack_version_placeholder参数,从大数据管理软件的全局配置中获取hdp的版本号信息,用于后面的执行脚本能够识别到hdp的版本信息;89.修改管理服务脚本文件os_check.py以及代理服务脚本文件os_check.py的os_distribution方法逻辑,从大数据管理软件的全局配置中读取对应的操作系统和操作系统的版本信息,用于大数据管理软件识别麒麟操作系统;90.修改管理服务脚本文件system.py以及代理服务脚本文件system.py的action_create方法,用于判断yum源下的repo配置文件是否和大数据管理软件启动时加载的配置文件内容相同,如果不同,则用新的yum源配置文件覆盖掉老的配置文件;91.完成以上大数据管理服务和代理服务的脚本文件的修改,保证大数据管理软件能够正确的执行下去,进而进行下一步的安装操作;92.修改ambari源码包中的*.pom描述文件和*.py可执行文件,将其中x86系统识别的关键字amd64和noarch手工替换为arm架构系统能够识别的关键字aarch64;93.修改管理服务和代理服务的脚本文件,其中,管理服务的脚本文件包括:94.$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py;95.$ambari-server/lib/ambari_commons目录下的脚本文件os_utils.py;96.管理代理服务的脚本文件包括:97.$ambari-agent/lib/ambari_commons目录下的脚本文件os_check.py;98.$ambari-agent/lib/ambari_commons目录下的脚本文件os_utils.py;99.修改两个脚本文件os_utils.py的配置文件,修改get_ambari_repo_file_full_name方法中的ambari_repo_file属性,指定为从大数据管理软件全局配置中获取,用于正确识别大数据管理软件对应的yum源的配置路径。100.修改两个脚本文件os_check.py脚本文件的_get_os_type方法的operatingsystem属性,配置为centos,修改_get_os_version方法的type属性,配置为7,用于被大数据管理软件安装脚本识别;101.为实现jdk自动检测和安装,还需要对ambari源码做如下修改:102.增加目录$ambari-server/resources/wdbdp/jdk,在新增加的$ambari-server/resources/wdbdp/jdk目录下增加脚本文件install.sh,脚本文件install.sh中编写以下逻辑:判断主机是否已经安装jdk,如果未安装,则自动调用yum install oracle-j2sdk1.8命令进行jdk的安装;103.修改$ambari-server/sbin目录下的ambari-server文件,在ambari-server文件中增加对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用;104.对ambari源码做上述修改后,在安装大数据管理软件的过程中,就会被自动加载和自动检测并安装jdk;105.为实现mysql自动安装和配置,还需要对ambari源码做如下修改:106.增加$ambari-server/resources/wdbdp/mysql目录,在新增的$ambari-server/resources/wdbdp/mysql目录下增加脚本文件install.sh和mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,在脚本文件install.sh中增加判断和安装mysql的逻辑,当判断出当前主机已经安装过mysql数据库,则跳过安装步骤,否则安装mysql数据库;107.增加$ambari-server/resources/wdbdp/mysql/init_script目录,在新增的$ambari-server/resources/wdbdp/mysql/init_script目录下增加ambari-ddl-mysql-create.sql文件;108.增加$ambari-server/src/main/python/wdb_dm目录,在新增的$ambari-server/src/main/python/wdb_dm目录下增加ambari-config.py文件,在ambari-config.py文件中编写代码进行用户自定义配置,配置大数据管理软件安装需要的数据库ip、数据库端口、数据库用户名、数据库密码、jdk安装路径、使用的数据库类型、mysql数据库驱动包路径、驱动包软链路径;109.在$ambari-server/sbin目录下的ambari-server文件中增加mysql选项,并在该mysql选项中调用$ambari-server/resources/wdbdp/mysql目录下的脚本文件install.sh以及$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,用于安装和配置数据库信息。110.第二步、完成对ambari源码的修改之后,运行编译命令进行ambari源码编译,待编译完成后,提取出可执行的二进制文件ambari-server-2.x.y.0-0.aarch64.rpm和ambari-agent-2.x.y.0-0.aarch64.rpm,做成yum源,然后配置好大数据管理软件的yum源,供安装大数据管理软件使用。111.第三步、执行yum install ambari-server命令进行大数据管理软件的安装,由于在ambari源码的$ambari-server/sbin目录下的ambari-server文件中增加了对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用,这样,在安装大数据管理软件的过程中,就能够自动加载和自动检测并安装jdk。112.第四步、执行ambari-server mysql命令进行一键配置,完成mysql数据库的检查、安装和配置过程,具体包括以下步骤:113.步骤1、给主机添加mysql用户组、mysql用户后,判断安装目录/usr/local/mysql、数据目录/mysqldata/mysql_$port以及日志目录/mysqldata/binlog_3306是否存在,不存在则自动创建;114.步骤2、删除麒麟操作系统自带的mariadb数据库,防止和即将安装的mysql数据库发生文件相互覆盖,导致mysql无法正常使用的冲突;115.步骤3、安装libaio库,设置安装目录、数据目录、日志目录的权限,解压ambari源码中$ambari-server/resources/wdbdp/mysql目录下的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,完成mysql数据库的安装;116.步骤4、配置/etc/my.cnf文件,启动mysql服务,修改mysql数据库的默认密码以及mysql数据库的访问权限,增加允许远程机器访问该mysql数据库;117.步骤5、调用ambari源码中$ambari-server/resources/wdbdp/mysql/init_script目录下的ambari-ddl-mysql-create.sql文件,初始化大数据管理软件安装配置过程中需要使用到的mysql数据库、表以及数据信息;118.步骤6、使用ambari源码包中的config类获取到大数据管理软件的默认配置,然后使用ambari源码中$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,将用户自定义配置覆盖掉默认配置并形成新的配置文件输出到系统路径/etc/ambari-server/conf/ambari.properties;同时,根据用户自定义配置中的mysql数据库驱动包路径,将该路径下的mysql数据库驱动包拷贝到系统的/usr/share/java目录下,并根据配置中的驱动包软链路径生成驱动包的软链接,用于大数据管理软件在初始化过程中被正确识别。119.第五步、大数据管理软件运行后,将编写好的第三方插件放入大数据管理软件加载目录“$ambari-server/resources/stacks/hdp/x.y/services”下,重启大数据管理服务,就可以自动识别到第三方的应用服务和自定义应用服务,并可进行服务的安装、监控和管理。120.第五步中,第三方插件通常是一些可执行的脚本[*.py或者*.sh]、配置文件、安装包、模板,通过脚本代码自动处理第三方大数据应用服务的分发、安装、监控、服务依赖。采用上述第五步可以增加各种开源的第三方应用服务和自定义应用服务,能够根据实际项目需要自行安装除套件内以外的大数据应用服务。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部