引言
目前市场上主流的大数据平台以CDH和HDP两种为主,而两种大数据平台都是基于Apache原生态版本改进的,HDP版本的更贴近于原生态版本,开源率100%,基本上支持所有的开源大数据组件。CDH版本大数据平台经过二次开发与原生态版本有较大差异,且在2018年已经闭源,但市场占有率较大。以上两种大数据平台都仅支持x86架构,早在几年期RedHat联手cloudera公司发表声明将推出64位ARM版,据悉目前Centos7.5以上版本系统已经支持arm架构,cloudera公司产品未见推出arm机构大数据平台,且Cloudera和Hortonworks合并后的CDH和HDP版本都无法下载,猜测开始进行收费。目前Cloudera官方最新大数据平台CDP是CDH与HDP两个产品合并后的新产品,之前有咨询官方客服,收到回复最新版HDP支持arm架构,但无法下载。
以下为各个版本支持架构
产品 | 支持架构 | 是否收费 |
---|---|---|
CDH | x86 | 6.3版本后需从官方下载 |
HDP | x86、Power 8、Power 9 | 官方最新3.1.5,githup最新2.7.5 |
HD(华为) | x86、arm(已知) | 是 |
TDH(星环) | x86、arm(已知) | 是 |
CRH(红象云腾) | x86、arm(已知) | 是 |
一、Ambari简介
Ambari是Apache Software Foundation中的一个顶级项目,它可以创建、管理、监视Hadoop整个生态圈(例如Hive、Hbase、Sqoop、ZooKeeper等)的集群,使得Hadoop以及相关的大数据软件更容易使用。
Ambari是一个分布式架构的软件,由Ambari Server和Ambari Agent两部分组成,用户可通过Ambari Server通知Ambari Agent安装对应的软件,Ambari Agent会定时地发送各个机器每个软件模块的状态给Ambari Server,最终这些状态信息会呈现在Ambari的GUI界面上,方便用户了解到集群的各种状态,并进行相应的维护。
二、编译心得
1. 感言
2020年接到在PK体系上编译ambari的任务,陆陆续续进行研究方案、摸索前行、适配、验证、优化等工作持续了近一年。从最初的银河麒麟 V4系统到后来的银河麒麟V10系统,从FT1500A到FT2000+,从当初的两个人到六个人的团队,大家一步一步摸索前进,团队6人全部由运维组成,但每个人都有自己的长处,涉及到硬件(bios升级)、网络、系统、虚拟化、Python开发等多方面,正是集合了团队所有人的力量最终完成了ambari适配及汉化和自定义托管服务的总体工作。
同时也要感谢领导的信任和团队所有成员的配合、支持,给了我这样一个带队的机会,对于我个人成长也是非常难得提升,让我从一个普通实施运维提升到如今带队者。
2. 本次适配的基础环境
服务器 | CPU | 操作系统 |
---|---|---|
长城擎天DF720 | 飞腾2000+ | Kylin-Server-10-SP1-Release-Build04-20200711 |
3. PK体系介绍(个人分享)
PK体系指基于国产飞腾(Phytium)CPU和麒麟(Kylin)操作系统的技术和产业体系,被誉为“中国架构”,PKS体系则是在PK体系的原架构基础上又加注了安全(Security)能力。
本人长期从事国产生态运维工作,其中主要以PK体系国产生态为主,运维过飞腾系列CPU型号:1500A、2000+、S2500,麒麟操作系统V4(4.0.2)、V10(sp1)等系列。CPU和操作系统支持关系如下:
CPU型号 | 支持操作系统版本 | 架构 |
---|---|---|
FT1500A | 麒麟V4 | arm64 |
FT2000+ | 麒麟V4和V10 | arm64 |
FT S2500 | 麒麟V10 | arm64 |
银河麒麟操作系统按照大版本主要分为V4和V10两大类,其中V4操作系统可以认为基于ubuntu实现,属于Debian体系分支。V4操作系统目前有4个小版本号,分别是sp1,sp2,sp3,sp4,目前服务器使用较多的是sp2和sp3,其中sp3版本具备安全管控,V4操作系统主要应用于军方项目,属于麒麟早期发行的版本,较为稳定。V10操作系统可以认为是基于centos实现,属于红帽体系分支,V10操作系统目前只接触到sp1版本号,但是根据更新时间不同Build版本和时间也不一样,目前接触过build04和build20两个版本,但是区别并不是很多。值得提醒的是V10-SP1操作系统内核等同于centos8内核版本,yum命令也跟centos8一样转变为dnf.yum。V10-SP1服务器操作系统目前主要用于民用项目。
三、适配思路
我们在适配Ambari之前一直使用apache版本的Hadoop在PK上使用的,当然也是对这一版本的安装包做过编译工作,我们在实现大规模集群部署时候是通过ansible自动化工具实现的,基本上可以实现操作系统装完之后的所有操作(磁盘分区、ssh免密、创建专有用户、分发host文件、时间同步、安装jdk、安装大数据的各个组件等),其实对于运维人员来说足够使用了。但是缺少界面话的展示效果,我们也基于这一版本通过prometheus+grafana定制化了针对各个组件的监控模板,但还是缺少界面话的风格。于是开始Ambari适配之路。。。
prometheus+grafana定制化可以参考我的博客链接
基于ARM64银河麒麟V4,通过Prometheus+Grafana+Hadoop实现对大数据集群监控
1. V4系统适配之路
最初我们是想基于V4系统适配ambari,原因是V4是基于ubuntu16改造的系统相对稳定,其次对于我们来说熟悉度也很高,于是在参考了网上编译文章后开始了编译道路,经过大概两个月努力最终成功在V4上安装上了ambari2.6,但是在安装过程中问题很多,最终只是实现了ambari-server和ambari-agent的安装,HDP组件包并没有编译因为太多了,所有V4的适配只完成了一部分。
V4系统适配Ambari2.6参考链接
基于ARM64银河麒麟V4编译安装Ambari2.6的一种方法
2. V10系统适配之路
V10系统适配需求也是随着麒麟V10操作系统的推广,以及之前在V4系统适配失败后必然的产物。当然在我们开始适配之前并不知道其实华为已经替我们趟过很多路了,他们已经在鲲鹏上适配过了,虽然用的是Centos7的ARM版本,其实他们已经完成了ARM架构适配的一步路,我们只需要完成麒麟系统适配的第二步路即可。下面总结一下适配遇到的问题:
- 鲲鹏虽然也是ARM64架构,但是系统是基于Centos7的系统,而麒麟V10-SP1这个版本上面我已经说过了它是对等的Centos8的内核(内核版本4.19),要知道Centos7内核版本在3.10以上,Centos8内核版本在4.18以上。但是目前Ambari最高支持Centos7,也就说ambari官方也只是支持到Centos7,可能那时候还没有8。也正是这个问题让我们遇到了后面的安装时候的问题。
- 华为适配用的是Centos7的系统,Ambari本身是支持这个版本的,而麒麟操作系统并不在Ambari支持的名单中,所以当你用Ambari安装的时候就会遇到一个尴尬的问题,并没有麒麟系统这个选项。
- 通过ambari安装HDP的时候,填入本地yum源的url地址后总是找不到HDP相关安装包,但是在X86上使用社区版本时候并没有这个问题,后来我们怀疑的是编译时候造成的问题。
四、集成
后续我们又集成了Hue4.2,ES,Redis等一些大数据相关组件,这些都有类似文章可以借鉴参考。
hue集成参考链接
HUE集成
五、汉化
汉化工作其实最主要就是app.js翻译的工作,其他改动项比较少,可以参考一下链接。
Ambari 2.7.3汉化
汉化的效果
六、 自定义集成机器学习框架(前提是适配框架)
参考我的机器学习框架适配博客
Tensorflow
Pytorch
结束语
感谢各位大佬的支持与交流,自文章发布后多位大佬留言和私信联系,本人也利用空余时间多次调整修改文章内容,希望与各位大佬共同进步,希望国产生态越来越健全!但受限于目前所在企业不再推广大数据产品,所以适配的Ambari已经不在迭代和优化,本人也曾有意捐献麒麟软件,奈何只接受公司合作方式。