Redian新闻
>
国产化大数据,Hadoop该如何应对

国产化大数据,Hadoop该如何应对

公众号新闻

Hadoop现状


2008年1月,Hadoop成为Apache顶级项目,至今已有十几年的发展史,虽然随着一些公有云产品的兴起,Hadoop逐渐“没落”,但是仍然有很多公司存在大量的私有化部署需求。

由于Apache版本的组件兼容性和部署复杂性,绝大部分公司在当时产品选型时选择了某种Hadoop发行版,据信通院在2019年6月数据整理,当时国内有39家基于Hadoop的平台供应商,这些供应商里面有70%多是基于Cloudera的CDH和HDP的社区版封装成产品来提供给用户的,有24%是基于Apache封装,还有一家自研的产品。大部分供应商基本都是在CDH/HDP社区版进一步封装,同时替换掉CDH/HDP的Logo,就发布出来自己的版本。也就是说CDH/HDP的发行版基本上“垄断”了Hadoop市场,分析其原因,主要是免费(CDH分为免费版和商业版,HDP为开源免费版),很多公司并没有像互联网大厂那样的技术能力,使用免费的Hadoop发行版无疑是“最佳”选择。

正是由于免费,可能大部分用户可能只是知道CDH或者HDP,而不知道Cloudera或者Hortonworks,实际上CDH是Cloudera公司的代表产品,HDP是Hortonworks公司的代表产品。两家公司都是围绕着大数据平台去做发行版,他们在2019年1月进行了合并,形成了新的Cloudera公司。然后Cloudera选择进行平台整合,形成新的产品CDP,以往的CDH和HDP两大产品线不再提供社区版,用户无法获取新的功能。自2021年1月31日开始,所有Cloudera软件都需要有效的订阅,且订阅费昂贵。此外,CDH6和HDP3将是CDH和HDP的最后企业版本,原有企业版用户无法继续获取新的功能和性能提升。至2022年3月份,CDH/HDP全部停止服务(EoS),用户没办法获取售后支持。
以往大家使用免费的Hadoop发行版已经习惯了,如何应对后续版本没有更新的问题呢?很多公司选择保持沉默,也打算一直维持现状(鸵鸟策略),但是,去年Apache Log4j引发的Oday严重安全漏洞的时候,突然就不能再淡定了,这个时CDH/HDP也没有免费补丁及后续版本可用了,只能自己想法子了,如果再发生类似的0day漏洞又该怎么办呢?!而且,很多国有企业对信息安全也是有很高的要求,所以很多企业不得不且必须想办法进行版本更新了。

替换为Apache开源版本?

这是一条可行的路径,但是实际上成本还是很高的!(参考网上一张片子)

国产化信创

目前我国的信息基础设施建设一直处于被动境地,一直被国外IT巨头“拿捏”,中国的 IT 产业在底层架构、标准、产品等领域严重依赖国外厂商,关键技术存在被封锁的风险,且国家网络安全易受到威胁。随着外部环境日趋复杂,美国商务部不断扩充“实体清单”,自有 IT 底层架构与标准的建设迫在眉睫。
信创产业即信息技术应用创新产业,旨在用我国自主研发的基础软硬件产品实现对国外引进产品的替代。目前,我国信创产业已形成了以国家和科研机构为引导,诸多企业共同实践并积极突破的新局面。科技发展至今,大国挟制的隐痛仍不容忽视,发展信息技术应用创新产业刻不容缓。
今年的乌克兰事件,更让我们看到,随着国际竞争环境日益激烈,争端所引发的技术卡脖子事件频发,国家层面更是加强了对核心技术自主可控的要求,国产化替换需求不断增强,Hadoop的版本升级和国产化软硬件适配更是迫在眉睫!


攒一个国产化的Hadoop



免费版本没有,还要考虑国产化,那么研发一个国产化的Hadoop发行版需要做哪些工作呢?我们分析了一下,主要涉及以下10个方面:
1

基础软硬件适配


基础硬件主要指CPU,国产化主要为ARM芯片(aarch64),主要有鲲鹏、飞腾等,但目前CDP(CDH/HDP)发行版只支持Intel芯片(x86 64),Apache开源社区目前官宣支持aarch64架构的只有hadoop3.3系列版本,目前市场上还没有基于这个版本的Hadoop发行版。基础软件主要指操作系统,例如红旗、麒麟等,其实OS适配还好,好多国产的操作市场都是兼容国外操作系统(主要是考虑适配上层软件)。

2

Hadoop生态组件选择


常见组件主要有Zookeeper、Hadoop(Hdfs、Yarn和Mapreduce)、Hive、Tez、Spark、Flink、Hbase、Kafka、Ranger、Ambari(已经回归),如果再结合现在的技术发展趋势,Ozone、Iceberg、Kyuubi等湖仓一体相关的组件也可纳入。这些只是表面上的组件,实际上深入分析,组件内还有嵌套关系,还会涉及Solr、Phoenix等被其他组件”藏“起来的,所以没有一定的技术功底,是无法全面掌控的。
3

Hadoop组件关联分析


估计很多人觉得直接采用Apache开源版本是一件很简单的事情,毕竟源码和大部分二进制包都摆在那里,但是其实真正做起来,就哭爹喊娘了,因为各个组件是存在很多版本依赖关系的,当所有组件都放在一起的时候,必然存在兼容性的问题,尤其是当以官宣首个支持ARM的Hadoop3.3.*为主进行其他组件集成的时候,你会很快发现其他组件在拖后腿!下图为一个简单的分析(实际上比这个复杂多了,跟所有组件有关系的线条没有画)。

并且,后续每新增一个组件,都需要做一个分析,不然就会出现版本不匹配引发兼容性问题,为后续生产运行埋下风险隐患。所以,想把这个工作做好,这就要求技术人员对每个组件都具备至少高级以上的掌握程度。
4

跨组件的Jar包依赖分析和解决


分析了组件之间的关系,还有一个更麻烦的事情,就是繁杂的Jar包依赖。由于很多组件使用很多相同的基础Jar包(例如Log4j等),但是Jar包版本不一致,这些组件在单独运行的时候,可能没有问题,集成在一起的时候问题就暴露了。这就需要根据Jar包依赖进行分析,有的Jar包版本能够向上向下兼容,这种情况还好,碰到那种不考虑版本兼容(“不负责任“)的Jar包,你就脑袋大了(这也估计是很多Java程序员最不想干的事情了)。简单列举几个兼容性存在问题的jar如下:

解决这个问题,大致有两种思路:

  • 选择合适的组件版本:不一定选择最新的,要选择合适的版本,但是绝对不能选择EOL的。

  • 自行修改代码适配:一些不太活跃但是常用的组件,例如Hive,目前3.1系列已经好几年了,最新的4.0还在alpha阶段,如果采用稳定的Hive3.1.*版本,将面临zookeeper、hadoop、guava、curator、nettey相关的代码修改(虽然社区有解决办法,但是很多是针对4.0的),需要对组件源代码有足够的熟悉。

5

前端框架


这个是一个很容易忽略的问题,实际上Hadoop生态不仅涉及复杂的后端程序,还有很多组件都有前端UI,这些前端组件在aarch64适配上就存在很多问题,有部分前端组件,例如NodeJs可以下载到arm版本,但有的组件由于版本适配等问题(例如phantomjs)就需要自己编译,这无疑又是一个技术挑战。
6

组件编译


解决了上述5个问题,就可以进行组件的编译了,大部分组件提供了详细的编译说明,也有的提供了基于Docker的方式,如果具备Docker、Maven、Ant、sbt、make等编译技术基础,这些编译技术学习起来难度不大,一般都是照猫画虎,编译过程中,如果有外网(能连美国的)助力,会非常方便,总之,实践路上还是很坎坷的,需要自己去体会。
组件编译完毕,还需要检查是否适配ARM平台,因为有部分jar包里面是"私藏".so文件的,这些.so是与操作系统强依赖的,有时候编译阶段看不出任何问题,但是运行起来就倒霉了!这里我推荐使用华为开发的checkso,可以免费使用。
7

Ambari组装


Ambari作为Hadoop集群管理的开源软件,目前尚没有较好的替换软件,有很多号称有自己发行版的公司都是把Ambari换个UI售卖的。

在Hadoop3.3.4这个主版本选定后,首先,Ambari自身的编译就需要调整很多jar包版本,没有一定技术能力,其实也难以搞定。其次,虽然Ambari目前已经集成了很多组件,但是还需要根据版本特性调整相关的配置。最后,对于尚未支持的Ozone、Kyuubi、Flink等组件,虽然可以找到一些公开资料和样例,但是很多开源项目都是最多算“学习版本",例如某电信领域的技术公司公开的Kyuubi组件集成到Ambari的资料和代码,就是残缺不全的,所以,只有自己动手实践才会发现问题,但也确实需要足够的技术能力。

8

RPM打包


按照目前Ambari的包管理方式,需要将各个组件打包成rpm包或deb包,这也是Ambari适配不同操作系统、管理不同版本管理的基础。

有些Hadoop集成商宣称放弃了这种方式,改用了tar包方式,看起来是简单了,实际上是应该是不太了解Ambari使用这种方式的深层次原因,当然Ambari开源社区也讨论过使用类似Cloudera Manager的parcel方式,但该特性至今还没有完成。所以目前还是沿续rpm包这种方式可能更靠谱些。

对于打包rpm的方式,开源社区有个Bigtop的项目是专门做这个的,但是国内关于Bigtop资料很少,使用起来也有一定难度,之前华为鲲鹏大数据给出过另外两种方式:

  • 使用Maven,编写Pom:目前Ambari使用的这种方式,优点是便于统一管理。
  • 使用rpmbuild,编写Spec:打包rpm关键是spec文件的编写。

听起来好像挺简单的,但实际上有个问题被忽略了,那就是Apache版本编译完成的二进制文件与rpm包的目录组织方式不一样!这就需要花大量时间去逆向拆解(老组件)或重新设计目录结构(新组件)。同时,这个目录结构需要遵循Ambari一定的”规范“(没找到相关说明),这也是Ambari管理组件版本及版本升级的关键设计,所以,同样需要对Ambari非常的熟悉,也需要一定的逆向工程能力。

9

部署测试


如果成功走到这个环节,恭喜您万里长征可能才走了一半,因为很多问题是这个环节才充分暴露出来的,一定会出现“卡脖子”问题(除非运气爆棚),往往需要把前面的工作重复很多次,直至完成这个环节。

10

功能测试



对于HDFS这种Ambari已经集成的组件,只要别乱动组件自身源代码,一般没什么大问题,但也不排除有动态加载类的这种情况,可能会出现类不匹配等问题,所以全面的功能测试必不可少,至少反复几轮回归测试。

对与Ozone、Kuubi这种Ambari没有集成的组件,如果对新增组件的自身功能不熟悉,可能就存在特别多的工作量(学习、反复实践、测试等,最终取决于技术能力)。


我们做了什么?

通过上面所述的10个方面的简要描述,您还感觉使用Apache开源组件攒一个Hadoop发行版是一件容易的事情吗?

如果再有人告诉你这事儿不难,一定要留心,别被忽悠了,事出蹊跷必有妖,可能只是欺负你不太了解技术内幕,等你进坑了再收拾你!

所以,我们HiDataPlus技术团队(一个民间”小团伙“),出于兴趣,历经半年,终于在近期完成了Hdp3.3.1的arm架构(aarch64)的免费Hadoop发行版,虽然目前只有Centos7.9的版本(按道理兼容centos的国产操作系统也可适用,具体待测试),其他国产操作系统还需后续适配。
Hdp3.3.1组件版本如下:

目前支持的操作系统:

有人很好奇,为什么还有免费这种好事儿?

没错,确实免费(无论公司或者个人),我们主要基于以下考虑:

  • 自我实现需求:团队成员均已不再年轻,想做些对社会有价值的事情,也想为国产化贡献点力量,也看到很多做Hadoop发行版的公司都很难盈利(例如刚刚科创版上市的星环,翻开财务报表,利润都是负的),不靠点理想是撑不下去的。
  • 产品推广考虑:免费的版本就会有更多的用户使用,更多用户使用就会有更多的问题反馈,就会帮助我们把产品做的更好。换句话讲我们其实也不是不想收费,是因为国内很多公司就喜欢使用免费的,收费就没人用了。
  • 寻求资源合作:目前虽然我们支持了很多国产操作系统,但是因为相关的资源较少(尤其是ARM服务器和国产操作系统),测试进度较为缓慢我们也非常希望通过免费使用,让有资源的公司可以跟我们合作,帮助我们把这个事情做得更好,例如硬件厂商能提供些测试用的国产服务器,软件厂商提供些国产操作系统,业务公司提供应用场景测试,这些也都是我们欠缺的,也是我们很亟需的!


期望

首先,我们期望感兴趣的同学使用我们的HDP3.3.1,目前提供网盘下载,
链接:https://pan.baidu.com/s/1z_Yk-inzpZnOvtG8EHo_ow
提取码:wj68

也可以关注HidataPlus公众号,留言“下载”获取最新网盘链接,有新版本发布我们也会通过公众号通知。

部署方式跟之前使用Ambari部署一样,网上找找资源一大堆,暂时不提供了。

其次,我们非常期望大家在使用过程中,踊跃拍砖,反馈问题,通过我们公众号(扫一扫上面的二维码)留言就可以。有问题我们才能进步!
最后,我们期望有资源的公司或个人跟我们联系(扫一扫上面的二维码,公众号留言),众人拾柴火焰高,大家一起合作,可以把这个事情做得更好!^-^.

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
hǎo xiǎng “rua” 🤩【广发策略】信息安全篇:信创产业链国产化进阶—“国家安全”系列(二)颠覆认知:如何用大数据,打一场现代化的局部战争?攻略 | FDA称多品牌婴幼儿食品受重金属污染,吃了有损大脑 :宝妈宝爸们该如何应对厨房和厨艺,我喜欢的美食中国女人大数据,令世界惊叹......核心产品国产化,波士顿科学本土化战略如何变革市场?盼着二十大赶紧开,但会有变数吗?【案例】美国大学听证会,该如何应对?大数据和算法给我们的生活带来了什么?我们又应该怎样应对呢?欧盟绿卡‘狂发’!黄金签证最新大数据,中国申请者碾压全球!葡萄牙半年发13万份长居签证…【案例】在美国出勤率低被停学该如何应对?侃爷遭全面抵制,企业巨头该如何应对?国产化CPU企业格局详解(2022)上海数据交易所&普华永道:数据要素视角下的数据资产化研究(97页)970万澳人中招!Medibank遭受特大信息泄露!华人该如何应对?你需要知道这些!大数据技术演进实录:云原生大数据、湖仓一体、AI for Data,未来“谁主沉浮”?| Q推荐Tibet was peacefully liberated云数据泄露和复杂性上升,如何应对安全挑战?从一件小事看半导体产业链的国产化最强「传播力」的毒株XBB.1.5袭来!会造成严重腹泻?恐致二次感染潮?我国该如何应对?什么是GPU?GPU和显卡的关系?GPU国产化布局?「德普数控」完成种子轮融资,加速实现高精度五轴机床自主国产化|36氪首发清华博士创业:CGT上游装备国产化赛道跑出一匹黑马美国揭露中国女人大数据,看完彻底傻眼了......【案例】达尔豪斯大学论文抄袭,我该如何应对?中移智库&梧桐大数据:2022中国青年大数据洞察报告外省少女与世界 《悠悠岁月》(2)又一英联邦国家对中国旅客实施入境限制政策!艺术留学生该如何应对?失去补贴,国产造车新势力如何应对史上最大挑战?互联网大厂|字节跳动 大数据开发实习生正在招聘中!有大数据处理经验者优先半导体产业链的会国产化吗?【案例】悉尼大学论文抄袭被抓,应该如何应对?美国给蒋介石国民党军多少援助此地已测到XBB毒株,会二次感染吗?来势汹汹,该如何应对?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。