正所谓几家欢乐几家愁,2022 年初,又一款顶级 Apache 大数据项目,正式宣告退役:Apache Ambari 于 2022-01 悄然宣布,项目不再维护,正式进入退役阶段!
Ambari 是什么
Apache Ambari 是一个基于 Web 的 Apache Hadoop 集群的供应、管理和监控工具,曾是 Apache Software Foundation 的顶级项目。Ambari 已支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop 和 Hcatalog 等,其提供了一个直观、易于使用的 Hadoop 管理 Web UI,由其 RESTful API 提供支持。
一句话,Ambari 是一款开源的大数据集群管理系统。
Ambari 的辉煌
大概 2015 年初,大数据三驾马车(Cloudera,Hortonworks,MapR)正值春风得意,Ambari 作为市面上唯一的开源的大数据集群管理系统,其开源社区相当活跃,市面上的应用者也很多,很多公司都基于开源的 Ambari 进行二次开发构建自己的大数据平台,Hortonworks 更是将 Ambari 作为其大数据平台 HDP (Hortonworks Data Platform) 内置的大数据集群管理系统,其市场占用率不可谓不高!
可是时过境迁,短短六七年时间,Ambari 就从当初的鼎盛时期,走到了今天退役的境地!
Ambari 退役的原因
Apache Ambari 的开发者之一 Jayush Luniya 提议将该项目的开发搁置,原因是大部分提交者和 PMC 成员没有积极参与该项目,过去两年来,只发布了 Ambari 2.7.6 这一个版本。
Jayush Luniya 发布了一个 72 小时的投票,如果同意项目退役,就回复 +1。目前该投票已获得全票通过。
背后的原因
- IT 市场大环境变化的影响:随着IT 生态大环境的变化,尤其是云计算的突起,市场竞争愈加激烈,Cloudera 不得不改变市场策略,于2019年1月与 Hortonworks 进行了合并;另一驾马车MapR,也被笔者曾经的东家 HPE 于2019年8月收购;
- 有科技大公司产品策略调整的直接影响:Cloudera 与 Hortonworks 合并后,逐步摒弃了 HDP 与 CDH 大数据平台,推出了 CDP 大数据平台;并在底层的大数据集群管理系统上,摒弃了 Ambari,主推原 CDH 底层的 Cloudera Manager;
- 更有开源社区宣传和运营的问题:Ambari作为一款优秀的开源大数据管理系统,时至今日,仍有不少公司的大数据平台是基于其开源版本二开构建的,正所谓酒香也怕巷子深,如果 Ambari 社区有着良好的宣传和运营,如果基于 Ambari 二开的公司能更主动地秉承开源精神回馈社区,相信即使 Cloudera 做了了上述调整,Ambari项目也不至于退役。
最近退役的顶级大数据项目
近几年退役的顶级 Apache 大数据项目主要有:
- Ambari: 如上文所述,Ambari 于2022年1月正式退役;
- Sentry:Sentry 对大数据 HADOOP 集群中的数据和元数据提供了细粒度的授权管理(即安全3A+1E中的 Authorization),sentry 于 2020-12正式退役
- Sqoop:Sqoop 在大数据集群 HADOOP 和关系型数据库 RDBMS 之间,提供了高效的大批量数据同步功能(Bulk Data Transfer) ,sqoop 于 2021-06正式退役.
项目退役后怎么办
首先大家要明白“项目退役”的含义:
- 某个 Apache 项目退役了,就代表背后的 Apache 开源社区不再维护该项目,也就是说,Apache官方不会再推出该项目的新版本(包括BUG修复版本);
- 但该项目的官方网站(一般是 xxx.apache.org),源码包(可以通过github/maven仓库获取),二进制包(可以通过官方网站/github/maven 仓库获取),问题追踪系统(一般是JIRA系统或github issues)等,一般都还是可用的;
所以短期来讲,项目中正在使用的开源组件退役后,用户仍然可以正常获取该组件的源码包和二进制包,仍然可以正常使用,几乎不受影响;对于代码能力比较强有二次开发能力的大公司,很多都会基于开源版本fork自己的新分支并维护在自己的代码库中,其影响更是有限。
已经退役的开源组件,Apache 官方不会再维护该项目,也就是说不会出新版本和新特性,对后续陆续发现的BUG也不会出修复版本,所以虽然该组件仍可以正常使用,但由于不能复用其背后开源社区的力量,所以长期来讲,一般都会重新进行技术选型,寻找替代品,在新产品新项目中切换使用新组件,在旧产品旧项目中逐步淘汰替换旧组件。
针对上面提到的3个项目具体来讲:
- sentry: 可以考虑使用 ranger 替代(CDP中内置的就是 ranger 而不再是 sentry);
- sqoop: 可以考虑使用 datax/sparksql/kafka-connect/seatunnel/flink-cdc 等替代;
- ambari: 目前来看,没有替代品,只能切换使用cdp等大数据平台(当然底层是cloudera-manager),或自己fork开源ambari二开维护了;