CN115421765A - 一种应用于国产化操作系统的大数据管理部署方法 - Google Patents

一种应用于国产化操作系统的大数据管理部署方法 Download PDF

Info

Publication number
CN115421765A
CN115421765A CN202111456906.0A CN202111456906A CN115421765A CN 115421765 A CN115421765 A CN 115421765A CN 202111456906 A CN202111456906 A CN 202111456906A CN 115421765 A CN115421765 A CN 115421765A
Authority
CN
China
Prior art keywords
ambari
server
big data
script
mysql
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.)
Pending
Application number
CN202111456906.0A
Other languages
English (en)
Inventor
汤士伟
徐奎东
谢志宇
姜锋
沈欢
刘明
毛志军
杨秋芬
潘宁
张丽
马玉刚
党忠妍
汪森然
王卫新
周融
王奇
韦法林
田亚龙
张志航
吕军成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WONDERS INFORMATION CO Ltd
Original Assignee
WONDERS INFORMATION CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WONDERS INFORMATION CO Ltd filed Critical WONDERS INFORMATION CO Ltd
Priority to CN202111456906.0A priority Critical patent/CN115421765A/zh
Publication of CN115421765A publication Critical patent/CN115421765A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供的一种应用于国产化操作系统的大数据管理部署方法,其特征在于,包括以下步骤:在安装了国产操作系统的主机上下载Ambari源码;修改Ambari源码;完成对Ambari源码的修改之后,运行编译命令进行Ambari源码编译,待编译完成后获得Yum源,然后配置好大数据管理软件的Yum源,供安装大数据管理软件使用;一键安装、配置大数据管理软件。采用本发明提供的方法后可以在运行国产操作系统的机器上安装大数据管理软件,并可以实现大数据管理软件的一键安装以及一键配置。更进一步,本领域技术人员可以根据实际项目需要自行安装除套件内自带的大数据应用服务以外的其他大数据应用服务。

Description

一种应用于国产化操作系统的大数据管理部署方法
技术领域
本发明涉及一种应用于国产化操作系统之上的大数据管理服务部署方案。
背景技术
随着国产化系统的不断推进和发展,目前适配诸如麒麟等的国产化系统已迫在眉睫。麒麟系统是Arm架构系统(此架构系统由于其自身耗能低、经济等特点,深得人们的喜爱,特别是在将来的服务架构设计中,将会得到更好的推广和使用)。但大部分的生态系统都是部署在X86架构系统上,大数据管理服务、应用服务也不例外。当前国内外比较流行的大数据管理平台都是无法下载到Arm架构系统适配版本的安装包。
同时,目前现有的大数据管理系统也存在着一些不可忽略的缺陷:首先,安装过程比较复杂,有许多依赖服务需要手工安装、配置,难度较高,并且要求有一定的技术背景人员方可胜任,无法实现傻瓜式安装或者一键配置;第二,被托管的大数据应用服务种类受限,仅可安装套件内自带的大数据应用服务,无法安装套件外的服务;第三,仅支持X86架构系统的安装,不支持国产化系统的安装部署。以上大数据管理系统存在的缺陷都将会限制国产化大数据技术的发展。
发明内容
本发明的一个目的是:解决目前市面无适配Arm架构系统的大数据管理软件方案,且大数据管理软件安装复杂、对运维人员要求较高的问题。本发明进一步的目的是解决应用服务适配有限的问题。
为了达到上述目的,本发明的技术方案是提供了一种应用于国产化操作系统的大数据管理部署方法,其特征在于,包括以下步骤:
步骤1、在一台安装了国产操作系统的主机上下载Ambari源码,同时安装Ambari源码编译所需的依赖环境;
步骤2、修改Ambari源码,包括以下内容:
修改安装脚本及配置文件:
在$ambari-server/lib/ambari_commons/resources目录下的配置文件os_family.json中增加国产操作系统的描述信息;
修改$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py,让脚本文件os_check.py能够识别到国产操作系统及国产操作系统的版本信息,保证安装顺利进行;
修改大数据管理服务和代理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py,其中:
修改脚本文件params.py,增加获取repo文件的base_url路径的逻辑代码,让安装大数据管理软件的脚本在安装过程中能够识别到Yum源路径和URL信息,用于应用服务组件的安装;
修改脚本文件yum_manager.py中的yum_check_package_available方法,通过读取大数据管理软件的全局配置获取到hdp-select版本,用于校验大数据管理软件安装包是否被安装;
修改脚本文件script.py的STACK_VERSION_PLACEHOLDER参数,从大数据管理软件的全局配置中获取HDP的版本号信息,用于后面的执行脚本能够识别到HDP的版本信息;
修改脚本文件os_check.py的os_distribution方法逻辑,从大数据管理软件的全局配置中读取对应的操作系统和操作系统的版本信息,用于大数据管理软件识别麒麟操作系统;
修改脚本文件system.py的action_create方法,用于判断Yum源下的repo配置文件是否和大数据管理软件启动时加载的配置文件内容相同,如果不同,则用新的Yum源配置文件覆盖掉老的配置文件;
修改Ambari源码包中的*.pom描述文件和*.py可执行文件,将其中x86系统识别的关键字amd64和noarch手工替换为Arm架构系统能够识别的关键字aarch64;
修改管理服务和代理服务的脚本文件os_check.py、os_utils.py:
修改脚本文件os_check.py的配置文件,修改get_ambari_repo_file_full_name方法中的ambari_repo_file属性,指定为从大数据管理软件全局配置中获取,用于正确识别大数据管理软件对应的Yum源的配置路径;
修改两个脚本文件os_utils.py的_get_os_type方法的operatingSystem属性,配置为centos,修改_get_os_version方法的type属性,配置为7,用于被大数据管理软件安装脚本识别;
增加目录$ambari-server/resources/wdbdp/jdk,在新增加的$ambari-server/resources/wdbdp/jdk目录下增加脚本文件install.sh,脚本文件install.sh中编写以下逻辑:判断主机是否已经安装JDK,如果未安装,则自动调用yum install oracle-j2sdk1.8命令进行JDK的安装;
修改$ambari-server/sbin目录下的ambari-server文件,在ambari-server文件中增加对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用;
增加$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数据库;
增加$ambari-server/resources/wdbdp/mysql/init_script目录,在新增的$ambari-server/resources/wdbdp/mysql/init_script目录下增加Ambari-DDL-MySQL-CREATE.sql文件;
增加$ambari-server/src/main/python/wdb_dm目录,在新增的$ambari-server/src/main/python/wdb_dm目录下增加ambari-config.py文件,在ambari-config.py文件中编写代码进行用户自定义配置,配置大数据管理软件安装需要的数据库IP、数据库端口、数据库用户名、数据库密码、JDK安装路径、使用的数据库类型、Mysql数据库驱动包路径、驱动包软链路径;
在$ambari-server/sbin目录下的ambari-server文件中增加Mysql选项,并在该Mysql选项中调用$ambari-server/resources/wdbdp/mysql目录下的脚本文件install.sh以及$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,用于安装和配置数据库信息;
步骤3、完成对Ambari源码的修改之后,运行编译命令进行Ambari源码编译,待编译完成后,提取出可执行的二进制文件ambari-server-2.x.y.0-0.aarch64.rpm和ambari-agent-2.x.y.0-0.aarch64.rpm,做成Yum源,然后配置好大数据管理软件的Yum源,供安装大数据管理软件使用;
步骤4、执行yum install ambari-server命令进行大数据管理软件的安装,由于在Ambari源码的$ambari-server/sbin目录下的ambari-server文件中增加了对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用,这样,在安装大数据管理软件的过程中,能够自动加载和自动检测并安装JDK;
步骤5、执行ambari-server mysql命令进行一键配置,完成Mysql数据库的检查、安装和配置过程,具体包括以下步骤:
步骤501、给主机添加Mysql用户组、Mysql用户后,判断安装目录/usr/local/mysql、数据目录/mysqldata/mysql_$PORT以及日志目录/mysqldata/binlog_3306是否存在,不存在则自动创建;
步骤502、删除国产操作系统自带的mariadb数据库,防止和即将安装的Mysql数据库发生文件相互覆盖,导致Mysql无法正常使用的冲突;
步骤503、安装libaio库,设置安装目录、数据目录、日志目录的权限,解压Ambari源码中$ambari-server/resources/wdbdp/mysql目录下的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,完成Mysql数据库的安装;
步骤504、配置/etc/my.cnf文件,启动Mysql服务,修改Mysql数据库的默认密码以及Mysql数据库的访问权限,增加允许远程机器访问该Mysql数据库;
步骤505、调用Ambari源码中$ambari-server/resources/wdbdp/mysql/init_script目录下的Ambari-DDL-MySQL-CREATE.sql文件,初始化大数据管理软件安装配置过程中需要使用到的MySQL数据库、表以及数据信息;
步骤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目录下,并根据配置中的驱动包软链路径生成驱动包的软链接,用于大数据管理软件在初始化过程中被正确识别;
步骤6、大数据管理软件运行后,将编写好的第三方插件放入大数据管理软件加载目录$ambari-server/resources/stacks/HDP/x.y/services下,重启大数据管理服务,就能够自动识别到第三方的应用服务和自定义应用服务,并可进行服务的安装、监控和管理。
优选地,所述管理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py分别在以下目录下:
$ambari-server/resources/stack-hooks/before-INSTALL/scripts;
$ambari-server/lib/ambari_commons/repo_manager;
$ambari-server/lib/resource_management/libraries/script;
$ambari-server/lib/ambari_commons;
$ambari-server/lib/resource_management/core/providers;
所述代理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py分别在以下目录下:
$ambari-agent/resources/stack-hooks/before-INSTALL/scripts;
$ambari-agent/lib/ambari_commons/repo_manager;
$ambari-agent/lib/resource_management/libraries/script;
$ambari-agent/lib/ambari_commons;
$ambari-agent/lib/resource_management/core/providers。
优选地,管理服务的脚本文件os_check.py以及os_utils.py分别在以下目录下:
$ambari-server/lib/ambari_commons;
$ambari-server/lib/ambari_commons;
管理代理服务的脚本文件os_check.py、os_utils.py分别在以下目录下:
$ambari-agent/lib/ambari_commons;
$ambari-agent/lib/ambari_commons。
优选地,步骤6中,所述第三方插件为可执行的脚本、配置文件、安装包、模板,通过脚本代码自动处理第三方大数据应用服务的分发、安装、监控、服务依赖。
采用本发明提供的方法后可以在运行国产操作系统(例如麒麟)的机器上安装大数据管理软件,并可以实现大数据管理软件的一键安装以及一键配置。更进一步,本发明增加各种开源的第三方应用服务和自定义应用服务,本领域技术人员可以根据实际项目需要自行安装除套件内自带的大数据应用服务以外的其他大数据应用服务。
附图说明
图1为本发明的整体编译流程图;
图2为大数据管理软件一键配置流程图;
图3为第三方/自定义应用服务装载流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明提供的一种应用于国产化操作系统的大数据管理部署方法基于以下本领域技术人员公知的技术术语:
Ambari:一种比较流行的用于管理部署大数据应用服务的系统软件。
管理服务:用于管理部署大数据应用服务的服务,通过该服务可以监控到运行中的每个大数据应用服务的运行状态,服务状态以及各个服务消耗系统资源的情况等。
代理服务:用于向管理服务上报消息,同时执行管理服务下发的执行命令的服务。
大数据应用服务:具有特定功能的执行服务,例如存储服务、计算服务、任务调度服务、协调服务等。
Yum源:web应用服务器对应访问资源的存储仓库描述,用来描述需要访问的资源文件的存放路径,以及资源文件被访问的优先级,索引名称等。通过配置了Yum源之后,就可以通过yum list xxx命令来搜索相关的资源文件,同时也可以对搜索到的资源文件进行相应的操作。例如:我们搜索JAVA的运行环境软件包是否存在在源中,可以用过yum list jdk命令进行搜索,搜索到之后可以使用yum install jdk.aarch64命令来安装JDK软件。
本实施例以应用于麒麟操作系统为例对本发明做进一步说明:
在实施本发明之前需要一台安装了麒麟操作系统的机器(本发明中,也称为“主机”),并在该机器上下载Ambari源码,同时安装Ambari源码编译所需的依赖环境。
本实施例公开的一种应用于国产化操作系统的大数据管理部署方法包括麒麟操作系统识别、版本识别、Yum源识别以及大数据管理软件包的制作,具体包括以下步骤:
第一步、修改Ambari源码以实现大数据管理软件在装有麒麟操作系统的机器上的一键安装以及配置,包括以下内容:
修改安装脚本及配置文件:
在$ambari-server/lib/ambari_commons/resources目录下的配置文件os_family.json中增加麒麟系统的描述信息;
修改$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py,让脚本文件os_check.py能够识别到麒麟操作系统及麒麟操作系统的版本信息,保证安装顺利进行;
修改大数据管理服务和代理服务的脚本文件,其中,管理服务脚本文件包括:
$ambari-server/resources/stack-hooks/before-INSTALL/scripts目录下的管理服务脚本文件params.py;
$ambari-server/lib/ambari_commons/repo_manager目录下的管理服务脚本文件yum_manager.py;
$ambari-server/lib/resource_management/libraries/script目录下的管理服务脚本文件script.py;
$ambari-server/lib/ambari_commons目录下的管理服务脚本文件os_check.py;
$ambari-server/lib/resource_management/core/providers目录下的管理服务脚本文件system.py;
代理服务脚本文件包括:
$ambari-agent/resources/stack-hooks/before-INSTALL/scripts目录下的代理服务脚本文件params.py;
$ambari-agent/lib/ambari_commons/repo_manager目录下的代理服务脚本文件yum_manager.py;
$ambari-agent/lib/resource_management/libraries/script目录下的代理服务脚本文件script.py;
$ambari-agent/lib/ambari_commons目录下的代理服务脚本文件os_check.py;
$ambari-agent/lib/resource_management/core/providers目录下的代理服务脚本文件system.py;
修改管理服务脚本文件params.py以及代理服务脚本文件params.py,增加获取repo文件的base_url路径的逻辑代码,让安装大数据管理软件的脚本在安装过程中能够识别到Yum源路径和URL信息,用于应用服务组件的安装;
修改管理服务脚本文件yum_manager.py以及代理服务脚本文件yum_manager.py中的yum_check_package_available方法,通过读取大数据管理软件的全局配置获取到hdp-select版本,用于校验大数据管理软件安装包是否被安装;
修改管理服务脚本文件script.py以及代理服务脚本文件script.py的STACK_VERSION_PLACEHOLDER参数,从大数据管理软件的全局配置中获取HDP的版本号信息,用于后面的执行脚本能够识别到HDP的版本信息;
修改管理服务脚本文件os_check.py以及代理服务脚本文件os_check.py的os_distribution方法逻辑,从大数据管理软件的全局配置中读取对应的操作系统和操作系统的版本信息,用于大数据管理软件识别麒麟操作系统;
修改管理服务脚本文件system.py以及代理服务脚本文件system.py的action_create方法,用于判断Yum源下的repo配置文件是否和大数据管理软件启动时加载的配置文件内容相同,如果不同,则用新的Yum源配置文件覆盖掉老的配置文件;
完成以上大数据管理服务和代理服务的脚本文件的修改,保证大数据管理软件能够正确的执行下去,进而进行下一步的安装操作;
修改Ambari源码包中的*.pom描述文件和*.py可执行文件,将其中x86系统识别的关键字amd64和noarch手工替换为Arm架构系统能够识别的关键字aarch64;
修改管理服务和代理服务的脚本文件,其中,管理服务的脚本文件包括:
$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py;
$ambari-server/lib/ambari_commons目录下的脚本文件os_utils.py;
管理代理服务的脚本文件包括:
$ambari-agent/lib/ambari_commons目录下的脚本文件os_check.py;
$ambari-agent/lib/ambari_commons目录下的脚本文件os_utils.py;
修改两个脚本文件os_utils.py的配置文件,修改get_ambari_repo_file_full_name方法中的ambari_repo_file属性,指定为从大数据管理软件全局配置中获取,用于正确识别大数据管理软件对应的Yum源的配置路径。
修改两个脚本文件os_check.py脚本文件的_get_os_type方法的operatingSystem属性,配置为centos,修改_get_os_version方法的type属性,配置为7,用于被大数据管理软件安装脚本识别;
为实现JDK自动检测和安装,还需要对Ambari源码做如下修改:
增加目录$ambari-server/resources/wdbdp/jdk,在新增加的$ambari-server/resources/wdbdp/jdk目录下增加脚本文件install.sh,脚本文件install.sh中编写以下逻辑:判断主机是否已经安装JDK,如果未安装,则自动调用yum install oracle-j2sdk1.8命令进行JDK的安装;
修改$ambari-server/sbin目录下的ambari-server文件,在ambari-server文件中增加对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用;
对Ambari源码做上述修改后,在安装大数据管理软件的过程中,就会被自动加载和自动检测并安装JDK;
为实现Mysql自动安装和配置,还需要对Ambari源码做如下修改:
增加$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数据库;
增加$ambari-server/resources/wdbdp/mysql/init_script目录,在新增的$ambari-server/resources/wdbdp/mysql/init_script目录下增加Ambari-DDL-MySQL-CREATE.sql文件;
增加$ambari-server/src/main/python/wdb_dm目录,在新增的$ambari-server/src/main/python/wdb_dm目录下增加ambari-config.py文件,在ambari-config.py文件中编写代码进行用户自定义配置,配置大数据管理软件安装需要的数据库IP、数据库端口、数据库用户名、数据库密码、JDK安装路径、使用的数据库类型、Mysql数据库驱动包路径、驱动包软链路径;
在$ambari-server/sbin目录下的ambari-server文件中增加Mysql选项,并在该Mysql选项中调用$ambari-server/resources/wdbdp/mysql目录下的脚本文件install.sh以及$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,用于安装和配置数据库信息。
第二步、完成对Ambari源码的修改之后,运行编译命令进行Ambari源码编译,待编译完成后,提取出可执行的二进制文件ambari-server-2.x.y.0-0.aarch64.rpm和ambari-agent-2.x.y.0-0.aarch64.rpm,做成Yum源,然后配置好大数据管理软件的Yum源,供安装大数据管理软件使用。
第三步、执行yum install ambari-server命令进行大数据管理软件的安装,由于在Ambari源码的$ambari-server/sbin目录下的ambari-server文件中增加了对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用,这样,在安装大数据管理软件的过程中,就能够自动加载和自动检测并安装JDK。
第四步、执行ambari-server mysql命令进行一键配置,完成Mysql数据库的检查、安装和配置过程,具体包括以下步骤:
步骤1、给主机添加Mysql用户组、Mysql用户后,判断安装目录/usr/local/mysql、数据目录/mysqldata/mysql_$PORT以及日志目录/mysqldata/binlog_3306是否存在,不存在则自动创建;
步骤2、删除麒麟操作系统自带的mariadb数据库,防止和即将安装的Mysql数据库发生文件相互覆盖,导致Mysql无法正常使用的冲突;
步骤3、安装libaio库,设置安装目录、数据目录、日志目录的权限,解压Ambari源码中$ambari-server/resources/wdbdp/mysql目录下的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,完成Mysql数据库的安装;
步骤4、配置/etc/my.cnf文件,启动Mysql服务,修改Mysql数据库的默认密码以及Mysql数据库的访问权限,增加允许远程机器访问该Mysql数据库;
步骤5、调用Ambari源码中$ambari-server/resources/wdbdp/mysql/init_script目录下的Ambari-DDL-MySQL-CREATE.sql文件,初始化大数据管理软件安装配置过程中需要使用到的MySQL数据库、表以及数据信息;
步骤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目录下,并根据配置中的驱动包软链路径生成驱动包的软链接,用于大数据管理软件在初始化过程中被正确识别。
第五步、大数据管理软件运行后,将编写好的第三方插件放入大数据管理软件加载目录“$ambari-server/resources/stacks/HDP/x.y/services”下,重启大数据管理服务,就可以自动识别到第三方的应用服务和自定义应用服务,并可进行服务的安装、监控和管理。
第五步中,第三方插件通常是一些可执行的脚本[*.py或者*.sh]、配置文件、安装包、模板,通过脚本代码自动处理第三方大数据应用服务的分发、安装、监控、服务依赖。采用上述第五步可以增加各种开源的第三方应用服务和自定义应用服务,能够根据实际项目需要自行安装除套件内以外的大数据应用服务。

Claims (4)

1.一种应用于国产化操作系统的大数据管理部署方法,其特征在于,包括以下步骤:
步骤1、在一台安装了国产操作系统的主机上下载Ambari源码,同时安装Ambari源码编译所需的依赖环境;
步骤2、修改Ambari源码,包括以下内容:
修改安装脚本及配置文件:
在$ambari-server/lib/ambari_commons/resources目录下的配置文件os_family.json中增加国产操作系统的描述信息;
修改$ambari-server/lib/ambari_commons目录下的脚本文件os_check.py,让脚本文件os_check.py能够识别到国产操作系统及国产操作系统的版本信息,保证安装顺利进行;
修改大数据管理服务和代理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py,其中:
修改脚本文件params.py,增加获取repo文件的base_url路径的逻辑代码,让安装大数据管理软件的脚本在安装过程中能够识别到Yum源路径和URL信息,用于应用服务组件的安装;
修改脚本文件yum_manager.py中的yum_check_package_available方法,通过读取大数据管理软件的全局配置获取到hdp-select版本,用于校验大数据管理软件安装包是否被安装;
修改脚本文件script.py的STACK_VERSION_PLACEHOLDER参数,从大数据管理软件的全局配置中获取HDP的版本号信息,用于后面的执行脚本能够识别到HDP的版本信息;
修改脚本文件os_check.py的os_distribution方法逻辑,从大数据管理软件的全局配置中读取对应的操作系统和操作系统的版本信息,用于大数据管理软件识别麒麟操作系统;
修改脚本文件system.py的action_create方法,用于判断Yum源下的repo配置文件是否和大数据管理软件启动时加载的配置文件内容相同,如果不同,则用新的Yum源配置文件覆盖掉老的配置文件;
修改Ambari源码包中的*.pom描述文件和*.py可执行文件,将其中x86系统识别的关键字amd64和noarch手工替换为Arm架构系统能够识别的关键字aarch64;
修改管理服务和代理服务的脚本文件os_check.py、os_utils.py:
修改脚本文件os_check.py的配置文件,修改get_ambari_repo_file_full_name方法中的ambari_repo_file属性,指定为从大数据管理软件全局配置中获取,用于正确识别大数据管理软件对应的Yum源的配置路径;
修改两个脚本文件os_utils.py的_get_os_type方法的operatingSystem属性,配置为centos,修改_get_os_version方法的type属性,配置为7,用于被大数据管理软件安装脚本识别;
增加目录$ambari-server/resources/wdbdp/jdk,在新增加的$ambari-server/resources/wdbdp/jdk目录下增加脚本文件install.sh,脚本文件install.sh中编写以下逻辑:判断主机是否已经安装JDK,如果未安装,则自动调用yum install oracle-j2sdk1.8命令进行JDK的安装;
修改$ambari-server/sbin目录下的ambari-server文件,在ambari-server文件中增加对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用;
增加$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数据库;
增加$ambari-server/resources/wdbdp/mysql/init_script目录,在新增的$ambari-server/resources/wdbdp/mysql/init_script目录下增加Ambari-DDL-MySQL-CREATE.sql文件;
增加$ambari-server/src/main/python/wdb_dm目录,在新增的$ambari-server/src/main/python/wdb_dm目录下增加ambari-config.py文件,在ambari-config.py文件中编写代码进行用户自定义配置,配置大数据管理软件安装需要的数据库IP、数据库端口、数据库用户名、数据库密码、JDK安装路径、使用的数据库类型、Mysql数据库驱动包路径、驱动包软链路径;
在$ambari-server/sbin目录下的ambari-server文件中增加Mysql选项,并在该Mysql选项中调用$ambari-server/resources/wdbdp/mysql目录下的脚本文件install.sh以及$ambari-server/src/main/python/wdb_dm目录下的ambari-config.py文件,用于安装和配置数据库信息;
步骤3、完成对Ambari源码的修改之后,运行编译命令进行Ambari源码编译,待编译完成后,提取出可执行的二进制文件ambari-server-2.x.y.0-0.aarch64.rpm和ambari-agent-2.x.y.0-0.aarch64.rpm,做成Yum源,然后配置好大数据管理软件的Yum源,供安装大数据管理软件使用;
步骤4、执行yum install ambari-server命令进行大数据管理软件的安装,由于在Ambari源码的$ambari-server/sbin目录下的ambari-server文件中增加了对$ambari-server/resources/wdbdp/jdk目录下的脚本文件install.sh的调用,这样,在安装大数据管理软件的过程中,能够自动加载和自动检测并安装JDK;
步骤5、执行ambari-server mysql命令进行一键配置,完成Mysql数据库的检查、安装和配置过程,具体包括以下步骤:
步骤501、给主机添加Mysql用户组、Mysql用户后,判断安装目录/usr/local/mysql、数据目录/mysqldata/mysql_$PORT以及日志目录/mysqldata/binlog_3306是否存在,不存在则自动创建;
步骤502、删除国产操作系统自带的mariadb数据库,防止和即将安装的Mysql数据库发生文件相互覆盖,导致Mysql无法正常使用的冲突;
步骤503、安装libaio库,设置安装目录、数据目录、日志目录的权限,解压Ambari源码中$ambari-server/resources/wdbdp/mysql目录下的mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz文件,完成Mysql数据库的安装;
步骤504、配置/etc/my.cnf文件,启动Mysql服务,修改Mysql数据库的默认密码以及Mysql数据库的访问权限,增加允许远程机器访问该Mysql数据库;
步骤505、调用Ambari源码中$ambari-server/resources/wdbdp/mysql/init_script目录下的Ambari-DDL-MySQL-CREATE.sql文件,初始化大数据管理软件安装配置过程中需要使用到的MySQL数据库、表以及数据信息;
步骤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目录下,并根据配置中的驱动包软链路径生成驱动包的软链接,用于大数据管理软件在初始化过程中被正确识别;
步骤6、大数据管理软件运行后,将编写好的第三方插件放入大数据管理软件加载目录$ambari-server/resources/stacks/HDP/x.y/services下,重启大数据管理服务,就能够自动识别到第三方的应用服务和自定义应用服务,并可进行服务的安装、监控和管理。
2.如权利要求1所述的一种应用于国产化操作系统的大数据管理部署方法,其特征在于,所述管理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py分别在以下目录下:
$ambari-server/resources/stack-hooks/before-INSTALL/scripts;
$ambari-server/lib/ambari_commons/repo_manager;
$ambari-server/lib/resource_management/libraries/script;
$ambari-server/lib/ambari_commons;
$ambari-server/lib/resource_management/core/providers;
所述代理服务的脚本文件params.py、yum_manager.py、script.py、os_check.py及system.py分别在以下目录下:
$ambari-agent/resources/stack-hooks/before-INSTALL/scripts;
$ambari-agent/lib/ambari_commons/repo_manager;
$ambari-agent/lib/resource_management/libraries/script;
$ambari-agent/lib/ambari_commons;
$ambari-agent/lib/resource_management/core/providers。
3.如权利要求1所述的一种应用于国产化操作系统的大数据管理部署方法,其特征在于,管理服务的脚本文件os_check.py以及os_utils.py分别在以下目录下:
$ambari-server/lib/ambari_commons;
$ambari-server/lib/ambari_commons;
管理代理服务的脚本文件os_check.py、os_utils.py分别在以下目录下:
$ambari-agent/lib/ambari_commons;
$ambari-agent/lib/ambari_commons。
4.如权利要求1所述的一种应用于国产化操作系统的大数据管理部署方法,其特征在于,步骤6中,所述第三方插件为可执行的脚本、配置文件、安装包、模板,通过脚本代码自动处理第三方大数据应用服务的分发、安装、监控、服务依赖。
CN202111456906.0A 2021-12-01 2021-12-01 一种应用于国产化操作系统的大数据管理部署方法 Pending CN115421765A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111456906.0A CN115421765A (zh) 2021-12-01 2021-12-01 一种应用于国产化操作系统的大数据管理部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111456906.0A CN115421765A (zh) 2021-12-01 2021-12-01 一种应用于国产化操作系统的大数据管理部署方法

Publications (1)

Publication Number Publication Date
CN115421765A true CN115421765A (zh) 2022-12-02

Family

ID=84230508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111456906.0A Pending CN115421765A (zh) 2021-12-01 2021-12-01 一种应用于国产化操作系统的大数据管理部署方法

Country Status (1)

Country Link
CN (1) CN115421765A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827009A (zh) * 2023-02-24 2023-03-21 杭州比智科技有限公司 一种基于自动化脚本部署Ambari的方法及系统
CN116361076A (zh) * 2023-06-01 2023-06-30 杭州费尔斯通科技有限公司 一种国产数据库备份方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827009A (zh) * 2023-02-24 2023-03-21 杭州比智科技有限公司 一种基于自动化脚本部署Ambari的方法及系统
CN116361076A (zh) * 2023-06-01 2023-06-30 杭州费尔斯通科技有限公司 一种国产数据库备份方法
CN116361076B (zh) * 2023-06-01 2023-11-14 杭州费尔斯通科技有限公司 一种国产数据库备份方法

Similar Documents

Publication Publication Date Title
US9588752B2 (en) Performing unattended software installation
US8898627B2 (en) Systems and methods for applying rules to transform objects of an application
US8671222B2 (en) Systems and methods for dynamically deploying an application transformation tool over a network
US8572566B2 (en) Systems and methods for analyzing changes in application code from a previous instance of the application code
US20060020937A1 (en) System and method for extraction and creation of application meta-information within a software application repository
US8578371B2 (en) Software distribution method and system with automatic prerequisite installation
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
US9372784B2 (en) Test system configuration method and system
US8209564B2 (en) Systems and methods for initiating software repairs in conjunction with software package updates
US8863108B2 (en) Finding out if software will run on an operating system without installing that software
US20110078211A1 (en) Systems and methods for analyzing and transforming an application from a source installation to a target installation
Artho et al. Why do software packages conflict?
CN115421765A (zh) 一种应用于国产化操作系统的大数据管理部署方法
US20110214018A1 (en) Systems and methods for diagnostic notification via package update manager
CN110888652B (zh) 基于jenkins插件的多版本构建方法及终端
US9542173B2 (en) Dependency handling for software extensions
US8887122B2 (en) Find and track information of interface usage of software libraries by other software
US9760364B2 (en) Checks for software extensions
CN107943504A (zh) 一种嵌入式系统中软件模块的动态升级方法
CN111352631A (zh) 一种接口兼容性检测方法及装置
CN108228266A (zh) 一种Android插件框架下不同插件间启动Fragment组件的方法和装置
CN110659022A (zh) 一种基于Java自动调用Python脚本的方法
US20220129301A1 (en) Architectural design for universal software automation pipelines
CN113031964B (zh) 一种大数据应用的管理方法、装置、设备及存储介质
CN101840337B (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