1、 2023 年第 11 期183智能技术信息技术与信息化基于 b i g t o p+a mb a r i 的智能大数据管控平台研究与应用张亚威1 张世富1 王一大1 李昌盛1 王新东1 郭 炜1ZHANG Yawei ZHANG Shifu WANG Yida LI Changsheng WANG Xindong GUO Wei 摘要 通过对 bigtop 和 ambari 进行优化提升,提出了一套基于 bigtop+ambari 的智能大数据管控平台。一方面,摆脱了底层架构受限问题,在主机层面实现了对国产化 ARM、X86 主机的适配以及在操作系统层面实现了对国产化麒麟操作系统的适配,解决
2、了开源大数据组件难以安装在国产化主机及操作系统的问题;另一方面,实现了对各个开源大数据组件进行自动化适配、编译、打包、部署安装等工作,提高了运维人员的工作效率,充分证明了基于 bigtop+ambari 的智能大数据管控平台的有效性及可行性。同时,在中国联通内部结合具体应用场景进行了规模化使用,从使用情况看,已初步具备商业化基础。关键词 大数据平台;bigtop;ambari doi:10.3969/j.issn.1672-9528.2023.11.0421.中国联合网络通信有限公司济南软件研究院 山东济南 2501000 引言在贸易摩擦背景下,底层计算架构“卡脖子”问题亟待解决,科技产业发展
3、受制于人的境况进一步被放大,从国家安全和商业竞争维度,我国自主研发的芯片、操作系统、计算平台等信创替代的需求强烈1。而在大数据领域,现有大数据平台均建构于 X86 之上,信创主机尚处于生态建设阶段,相配套的上层平台和应用还不完善,缺乏信创 ARM 主机部署大数据平台成功商用案例2。为支撑信创,中国联通数据中台已经规划了 1800 台信创主机用于数据上云,占资源总量的 50%,为此,解决大数据平台和信创主机的适配问题迫在眉睫3。随着 HDFS、HIVE、FLINK 等智能大数据的普及,迫切需要对各个开源大数据组件进行适配、编译、打包、部署安装等工作。而传统对各个开源大数据组件进行适配、编译、打包
4、、部署安装的工作相互割裂,需要运维人员手动处理,费时费力,因此需要对开源大数据组件进行自动化适配、编译、打包、部署安装,从而释放运维人员冗余工作,提高工作效率4。随着智能社区的发展,已研发出像 CDH、HDP 这种自动化对开源大数据组件进行适配、编译、打包、部署安装的产品,然而 CDH、HDP 智能一段时间后均已闭源,并转入商业化产品5。同时,CDH、HDP 这类产品也只能适配 X86 这类主流主机以及 Centos 这类主流操作系统,无法适配国产化信创主机及国产化麒麟操作系统。因此,有必要自主研发一套对智能大数据组件进行自动化适配、编译、打包、部署安装的产品,同时适配国产化信创主机及国产化麒
5、麟操作系统。针对上述问题并借鉴国内外相关文献,本文提出一种基于 bigtop+ambari 的智能大数据管控平台。一方面摆脱了底层架构受限问题,实现了适配国产化信创ARM主机和X86主机,且全部功能均适配国产化麒麟操作系统,性能稳定可靠;另一方面实现了对开源大数据组件进行自动化适配、编译、打包、部署安装等工作,提高了运维人员的工作效率。1 基于 bigtop+ambari 的智能大数据管控平台设计本章研究基于 bigtop+ambari 的智能大数据管控平台设计,主要介绍基于 bigtop+ambari 的智能大数据管控平台整体架构设计与系统流程设计。1.1 架构设计基于 bigtop+amb
6、ari 的智能大数据管控平台整体架构如图1 所示。图 1 基于 bigtop+ambari 的智能大数据管控平台整体架构图基于 bigtop+ambari 的智能大数据管控平台架构由 4 大模2023 年第 11 期184智能技术信息技术与信息化块组成,包括:主机层、操作系统层、智能大数据组件集成层、智能大数据组件管控层。如图 1 所示,其底座由 X86 主机或 ARM 主机组成,基于 bigtop+ambari 的智能大数据管控平台既支持部署在 X86集群上,也支持部署在 ARM 集群上,实现了将智能大数据部署在国产化信创主机上,以解决智能大数据难以部署在国产化主机的问题。在主机层之上为操作
7、系统层,包括 Centos 操作系统与麒麟操作系统,基于 bigtop+ambari 的智能大数据管控平台既支持部署在 Centos 操作系统上,也支持部署在国产化麒麟操作系统上,实现了将智能大数据部署在国产化麒麟操作系统上,以解决智能大数据难以部署在国产化麒麟操作系统的问题。在操作系统层之上是智能大数据集成层,能够支撑多种开源大数据组件的自动化适配、编译、打包,包括 HDFS、YARN、HIVE、HBASE、HUDI、FLINK 等,对不同版本的开源大数据组件源代码进行自动化适配、编译、打包,生成可部署的 RPM 安装包;顶层为智能大数据管控层,能够支撑多种开源大数据组件的自动化部署安装,包
8、括 HDFS、YARN、HIVE、HBASE、HUDI、FLINK 等,实现了针对开源大数据平台运维的统一管理,对开源大数据平台中集群、主机、组件、服务的全方位管控。1.2 流程设计基于 bigtop+ambari 的智能大数据管控平台系统流程设计如图 2 所示。生成RPM安装包基于ambari二次开发管控子系统部署安装管控运维监控基于bigtop二次开发适配编译打包子系统适配编译打包开源大数据源代码HDFSYARNHIVEHUDIFLINKHBASE等图 2 基于 bigtop+ambari 的智能大数据管控平台流程图由图 2 可知,基于 bigtop+ambari 的智能大数据管控平台包括
9、 2 个子系统:基于 bigtop 二次开发适配编译打包子系统、基于 ambari 二次开发管控子系统。基于 bigtop+ambari 的智能大数据管控平台,首先从开源大数据源代码仓库中获取相应开源大数据组件的源代码,其中开源大数据源代码为全部开源大数据组件,包括 HDFS、YARN、HBASE、HUDI、HIVE、FLINK、SPARK 等,然后将获取到的开源大数据源代码输入到基于 bigtop 二次开发适配编译打包子系统进行适配、编译、打包等工作,生成 RPM 安装包,RPM 安装包输出完毕后,基于 ambari 二次开发管控子系统便可纳管这些已生成的RPM安装包,进行部署安装、运维、管
10、控、监控等工作。2 基于 bigtop+ambari 的智能大数据管控平台实现本章主要研究基于 bigtop+ambari 的智能大数据管控平台实现,主要介绍基于 bigtop 二次开发适配编译打包子系统、基于 ambari 二次开发管控子系统 2 个子系统。2.1 基于 bigtop 二次开发适配编译打包子系统中国联通采购的信创主机主要包括 X86 架构的海光主机和 ARM 架构的鲲鹏主机。需要解决智能大数据组件在这两种机型的适配、编译、打包、安装,以便实现在这两种机型上部署,从而规避产业链中潜在的卡脖子风险。适配信创主机的本质,就是将开源大数据源代码针对国产化信创主机进行编译、打包,生成可
11、针对国产化信创主机部署的 RPM 安装包。本文通过对 bigtop 进行二次开发,利用 bigtop 可对智能大数据组件进行全面打包、测试和配置的能力,实现了开源大数据组件针对国产化信创 X86 主机与国产化信创 ARM 主机的适配。为将开源大数据源代码适配国产化信创主机及国产化麒麟操作系统,本文基于 bigtop 进行二次开发,研发了基于bigtop 的适配编译打包子系统。2.1.1 bigtopbigtop 是一个 Apache 基金会的智能项目,能够对各种版本的开源大数据组件源代码进行编译、打包、测试,bigtop可以在多种环境中对开源大数据组件源代码进行编译、打包、测试。版本兼容性是一
12、个很普遍的问题,例如在安装 HBASE时,若 HBASE 和 HADOOP 版本不对应,则无法运行。传统编译、打包、部署安装开源大数据组件只能对单个开源大数据组件进行操作,部署完一个大数据组件后,再对另一个大数据组件进行上述重复工作,然后进行部署安装适配,若安装、运行均成功说明这两个版本的大数据组件能够适配,若安装、运行不成功说明这两个版本的大数据组件不适配。对 于 HADOOP,Doug Cutting 曾 经 说 过,HADOOP同 Linux kernel 非常像,它是一个生态系统(MapReduce、HIVE、PIG、AVRO、HBASE 等),而 且 目 前 包 括 了Apache
13、开源版本和许多发行版。Linux 也有许多版本,比如RedHat、Ubuntu、Fedora、Debian 等,因此急需对这些版本进行有效管理。Apache Bigtop 就是为了解决这一问题而诞生的项目,它的目标是对所有开源大数据项目进行打包、部署和集成测试,而不是单独的几个项目。2.1.2 海光 X86 主机适配由于信创X86芯片与Intel X86芯片本质属于同一种架构,因此针对海光 X86 芯片的信创主机并不需要对 bigtop 进行二次开发,直接使用 bigtop 在海光 X86 主机环境中进行编译、打包即可生成所需 RPM 安装包。2.1.3 鲲鹏 ARM 主机适配对于鲲鹏 ARM
14、 芯片,由于其芯片架构与 X86 差异较大,2023 年第 11 期185智能技术信息技术与信息化bigtop 暂时不支持鲲鹏 ARM 主机,因此需要对其进行二次开发。编译过程总体分为以下三大步。(1)安 装 编 译 前 置 依 赖,如 rpm-build、gcc-c+、python-devel、gulp、git 等。(2)安 装 编 译 工 具,如 phantomjs、frontend-maven-plugin、leveldb/jni 等。(3)源代码编译。获取开源大数据源代码后需要将部分 pom 文件中的 X86 和 amd64 修改为 arm 和 aarch64,以适配 ARM 芯片架构
15、,涉及的文件列表如下所示:logsearch/pom.xmlfuntest/pom.xmlmetrics/metrics-grafana/pom.xmlagent/pom.xmlserver/pom.xmlcontrib/views/views-package/pom.xmlclient/python-client/pom.xmlshell/python-shell/pom.xml修改芯片架构参数后,仍需要按照上述两步安装的依赖与编译工具版本修改对应 pom 文件中的版本号。最后,需要将 web/package.json 中的 ember-handlerbars-brunch 修改为 gith
16、ub 链接如下:ember-handlerbars-brunch:git:/ 包将会存储在对应目录下。2.1.4 适配麒麟操作系统在操作系统层面主要使用了国产化麒麟操作系统,因此需要实现开源大数据组件在国产化麒麟操作系统上部署安装。由于 bigtop 并未对国产化麒麟操作系统进行兼容适配,因此需对 bigtop 进行二次开发,以完成对国产化麒麟操作系统的适配,修改内容涉及以下几个方面。(1)配置操作系统校验,在 Ambari agent 校验中添加麒麟操作系统,需要修改操作系统校验相关脚本,路径为:/usr/lib/ambari-agent/lib/ambari_commons/os_chec
17、k.py。在 207行添加:elif _is_kylin_linux():distribution=(kylin,10,LTS)意思为若操作系统判断为麒麟操作系统,则返回麒麟操作系统的版本。(2)对 bigtop 中 rpmbuild 进行修改,引入 kylin-rpm-confi g。例如针对 hadoop 组件编译,需要修改 bigtop-packag-es/src/rpm/hadoop/SPECS/hadoop.spec:%if%?suse_version:10 BuildRequires:pkg-confi g,libfuse2,libopenssl-devel,gcc-c+#Requ
18、ired for init scripts Requires:sh-utils,insserv%endif#kylin10 does not have any dist macro#So I will suppose anything that is not Mageia or a SUSE will be a kylin10%if%!?suse_version:10&%!?mgaversion:10 BuildRequires:pkgconfig,fuse-libs,kylin-rpm-config,lzo-devel,openssl-devel#Required for init scri
19、pts Requires:coreutils,/lib/lsb/init-functions%endif%if 0%?mgaversion BuildRequires:pkgconfig,libfuse-devel,libfuse2,libopenssl-devel,gcc-c+,liblzo-devel,zlib-devel Requires:chkconfig,xinetd-simple-services,zlib,initscripts%endif2.2 基于 bigtop+ambari 的智能大数据管控平台搭建2.2.1 ambariambari是Hortonworks开源的大数据生态
20、圈的管理软件,具备大数据生态圈组件的安装、管理、运维等基本功能,同时支持二次开发组件集成功能,提供 Web UI 进行可视化集群管理,简化了大数据平台的安装、运维难度。搭建智能大数据平台主要分为两部分,一部分是大数据平台管理系统搭建,即 ambari 安装,另一部分通过 ambari 安装大数据生态圈组件(如HDFS、YARN、HIVE、HBASE、HUDI、FLINK等)。2.2.2 基于 ambari 对智能大数据组件管控基于 bigtop+ambari 的智能大数据管控平台中对智能大数据组件进行部署安装、管控的功能即对 ambari 进行二次开发实现。由于开源 ambari 无法安装在国
21、产化麒麟操作系统,因此需要对 ambari 进行二次开发以能够部署在国产化麒麟操作系统。例如将麒麟操作系统引入 ambari 安装检测项中,ambari-common/src/main/python/ambari_commons/os_check.py:def _get_os_type():dist=OSCheck.os_distribution()operatingSystem=if(kylin in dist0.lower():operatingSystem=redhat else:operatingSystem=dist0.lower()def _get_os_version():dis
22、t=OSCheck.os_distribution()if(Kylin in dist0):dist=7 else:dist=dist1 2023 年第 11 期186智能技术信息技术与信息化 if dist:return dist else:raise Exception(Cannot detect os version.Exiting.)另外,智能 ambari 仅支持当前部分主流智能大数据组件安装,不支持个性化大数据组件安装,因此针对定制化开源大数据组件需要对 ambari 进行二次开发,例如 Redis、HUDI、ClickHouse 等智能大数据组件。以定制化开源大数据组件 HUDI
23、 为例,其中研发目录均位于 ambari-server/src/main/resources/stacks,目录结构如下所示:ambari-server/src/main/resources/stacks/bigtop metainfo.xml(stack 相关信息)repos(yum 安装所需要的 repos 配置信息)services/HUDI confi guration(配置文件)package:scripts(服务相关组件的操作脚本)templates(部署时脚本所用到的模板文件)alerts(告警配置)quicklinks(快速链接配置)metainfo.xml(元信息)开发过程如
24、下。(1)研发服务元信息(metainf.xml)HUDI_CLIENT Hudi Client 1+true CLIENT scripts/hudi_client.py PYTHON 1200 FLINK host true any hudi (2)研发配置项信息(confi guration)若当前大数据组件中含有配置信息,则需要将大数据组件中的配置文件放入该目录下。(3)研发控制脚本(package/scripts)大数据组件的安装、启动、停止等执行脚本均位于当前目录下,因此该目录中的文件为大数据组件执行的核心脚本。class HudiClient(Script):def install
25、(self,env):self.install_packages(env)if _name_=_main_:HudiClient().execute()3 基于 bigtop+ambari 的智能大数据管控平台验证3.1 平台功能性验证为验证基于 bigtop+ambari 的智能大数据管控平台的可靠性和稳定性,对基于 bigtop+ambari 的智能大数据管控平台进行实验验证。针对可靠性方面,对基于 bigtop+ambari 的智能大数据管控平台运行过程中,为模拟生产过程中主机下线、节点掉线等故障,需要人工中断或添加相应关键节点,查看任务是否能够正常运行。基于此进行以下实验,如表 1 所
26、示。表 1 平台可靠性实验实验操作实现效果任务运行过程中,杀掉分布式文件系统主管理进程。任务运行正常任务运行过程中,杀掉数据仓库系统主管理进程。任务运行正常任务运行过程中,kill NoSQL 主管理进程。任务运行正常任务运行过程中,下线任意 1 台数据节点。任务运行正常任务运行过程中,增加任意 1 台数据节点任务运行正常任务运行过程中,下线任意 1 台管理节点。任务运行正常任务运行过程中,增加任意 1 台管理节点。任务运行正常任务运行过程中,对大数据平台中组件进行升级。任务运行正常任务运行过程中,对大数据平台中组件进行降级。任务运行正常任务运行过程中,对数据磁盘进行更换,新盘能做到无人工干预
27、,自动磁盘格式化,在格式化完成后自动挂载到老盘所挂载的目录上,直接提供服务。任务运行正常通过表 1 中对基于 bigtop+ambari 的智能大数据管控平台的实验及效果,可以看出本文提出的基于 bigtop+ambari 的智能大数据管控平台可靠性满足生产需要。3.2 平台性能验证为进一步验证基于 bigtop+ambari 的智能大数据管控平台可靠性,基于 TPCDS 公共数据集进行压力测试,以充分评估基于 bigtop+ambari 的智能大数据管控平台的可靠性。对 50 台物理机资源部署集群平台,分别选 50 台机器部署开源 Hadoop 平台,50 台机器部署基于 bigtop+am
28、bari 的智能大数据管控平台。集群部署正常且运行正常情况下,通过 2023 年第 11 期187智能技术信息技术与信息化TPC-DS 工具在集群上构建实验数据,规模为 100 TB TPC-DS 实验数据。通过 TPC-DS 工具依次运行 99 条标准 SQL,记录每条 SQL 执行时间,分别得到开源 Hadoop 平台和基于bigtop+ambari 的智能大数据管控平台运行 99 条标准 SQL 的整体耗时对比结果,如图 3 所示。图 3 TPCDS 99 条 SQL 运行耗时对比图由图 3 可知,对两个平台分别运行了两次 99 条 TPCDS SQL,整体耗时方面,基于 bigtop+
29、ambari 的智能大数据管控平台与开源Hadoop平台耗时均在10 h左右,耗时相对稳定,说明本文提出的基于 bigtop+ambari 的智能大数据管控平台性能方面与开源 Hadoop 平台持平,性能相对稳定、可靠。另外,通过对平台部署、运维人员占比情况进行统计分析,得出平台部署耗时对比,如图 4 所示。图 4 平台部署耗时对比图由图 4 可知,对 2 个平台分别运行部署,耗时方面,基于 bigtop+ambari 的智能大数据管控平台与开源 Hadoop 平台耗时均在 7 天内部署完成,然而在运维人员数量方面,基于bigtop+ambari 的智能大数据管控平台仅安排 1 人完成,而开源
30、 Hadoop 平台需要安排 7 人完成,说明本文提出的基于bigtop+ambari 的智能大数据管控平台能够降低运维复杂度,大大提高运维人员的工作效率。4 结论本文通过对 bigtop 及 ambari 进行二次开发,自主研发了一套基于 bigtop+ambari 的智能大数据管控平台,一方面摆脱了底层架构受限问题,在主机层面实现了对国产化 ARM、X86 的适配,在操作系统层面实现了对国产化麒麟操作系统的适配,解决了开源大数据组件难以部署安装在国产化主机及操作系统的问题;另一方面实现了对各个开源大数据组件进行自动化适配、编译、打包、部署安装等工作,提高了运维人员的工作效率。这充分证明了本
31、文提出的基于bigtop+ambari 的智能大数据管控平台的有效性及可行性。同时,在中国联通内部结合具体应用场景进行了规模化使用,从使用情况看,已初步具备商业化基础。基于 bigtop+ambari 的智能大数据管控平台还有很多地方需要改进,当前平台只能实现单一类型主机或单一类型操作系统部署安装开源大数据组件,无法实现不同类型主机或操作系统的混合部署。在后续的研究工作中,将研究如何对多种主机及操作系统进行混合部署,从而大大提高平台的部署灵活性。参考文献:1 袁一,汪星辰.大数据服务云 2.0,实现新一代数据驱动、技术赋能 J.中国金融电脑,2020(11):46-48.2 孙业志,何有钧.基
32、于国产软硬件的行业大数据体系架构研究 J.软件和集成电路,2016(9):43-45.3 美 加利.分布式操作系统-原理与实践 M.北京:机械工业出版社,2003.4 熊超,阿拉拇,胡必波,等.Hadoop 大数据平台自动化运维工具 Ambari 部署及应用 J.信息技术与信息化,2022,269(8):21-24.5 胡必波,彭梅,刘晓娟.基于 Ambari 快速部署 Hadoop 大数据集群环境研究 J.江苏通信,2021,37(2):94-97.6 吴丽杰,张璐璐,张婷.基于 Ambari 的 Hadoop 集群快速部署研究 J.重庆工商大学学报(自然科学版),2020,37(1):42
33、-48.【作者简介】张亚威(1988),男,山东菏泽人,学士,工程师,研究方向:云计算、大数据、系统架构。张世富(1970),男,山东潍坊人,硕士,高级工程师,研究方向:软件项目管理、云计算与大数据技术。王一大(1991),男,山东济南人,硕士,工程师,研究方向:机器学习、深度学习、大数据平台研发。李昌盛(1984),男,山东临沂人,学士,工程师,研究方向:大数据、平台架构。王新东(1988),男,山东潍坊人,学士,工程师,研究方向:大数据、分布式计算。郭炜(1986),男,山东德州人,硕士,工程师,研究方向:大数据存储及计算、云计算。(收稿日期:2023-05-23 修回日期:2023-06-14)
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100