快一年没写博客了,终于回来了,最近因公司业务需要,要基于cdh发行版打包自定义patch的rpm,于是又搞起了bigtop,就是那个hadoop编译打包rpm和deb的工具,由于国内基本没有相关的资料和文档,所以觉得有必要把阅读bigtop源码和修改的思路分享一下。
我记得很早以前,bigtop在以前版本吧,是用make进行打包的,其实这个以前的版本,搁我觉得就不应该出现在apache正式仓库里,就应该放在incubator里面,但是估计由于是cdh主导开发的,而Doug Cutting又是前基金会主席,所以,一个基本没有产品化的东西从孵化器提升到顶级项目相对容易一些吧。cloudera官方在github上开源的的cdh-package应该是基于bigtop 的,不过由于他们的每个git分支只更新rpm的spec文件,所以,貌似默认情况下根本使不了,不厚道啊。而apache的bigtop又没有cdh相关的avro,sentry,llama等依赖,所以只能自己读源码修改。
解决方案一:基于cdh-package进行修改,优势是贴近cloudera,可能需要修改的代码量比较少,劣势是基于make,后期维护性和可扩展性较差,我可不想去改Makefile那种东西。
解决方案二:基于apache bigtop进行修改,优势是使用gradle编译,可维护性可扩展性好,劣势是代码修改量大。
考虑再三,我决定还是贴近社区,远离资本家,跟广大无产阶级走,所以我选择了apache b