我对cdh及其维护方式有疑问:
当我转到与特定cdh版本相关的包装信息时,我可以检查每个组件的包版本(例如cdh 5.5.5:"Extension names and packages")。但是我不明白"包版本是什么"完全是指。例如,对于组件Apache Parquet,"包版本"是 parquet-1.5.0 + cdh5.5.5 + 181 。如何准确找出打包的源代码?这是否与特定回购中的标签相对应?如果我去"官方"阿帕奇木地板回购,没有" cdh5.5.5"分支,我最接近的是一个名为" 1.5.0" (depends
)。来自cdh的人们如何知道 parquet-1.5.0 + cdh5.5.5 + 181 究竟是指什么?
仍然关注Apache Parquet,即使是最新的cdh版本仍然使用标签上的Apache Parquet是2014年5月22日,即超过3年前。为什么他们不升级到1.6.0这样的新版本?我之所以要问的是1.5.0中有一个错误,它在3年前修复了镶木地板1.6.0,但最新的cdh版本仍在使用1.5.0版本。有没有理由为什么他们继续使用一个非常老的,有问题的版本?
谢谢!
答案 0 :(得分:0)
你认为木地板1.5.0 + cdh5.5.5 + 181最接近木地板1.5.0是正确的。但是代码与实木复合地板1.5.0不同 上游因为:
CDH强制实现跨组件兼容性。使用parquet-1.5.0的代码和应用程序也必须与所有其他Hadoop服务(HDFS,Hive,Oozie,YARN,Spark,Solr,HBase)一起使用。不兼容性必须修复,因此镶木地板的代码将包括那些错误修复。
CDH强制执行主要版本兼容性。这意味着在CDH5.1上编写的应用程序仍然适用于所有CDH5.x版本的CDH5.5和CDH5.7。这也会改变代码库。
解释这一点的最佳方式是,timber-1.5.0 + cdh5.5.5 + 181将支持镶木地板1.5.0中提供的所有功能,并且还可以与CDH5.5一起提供的相应Hadoop服务一起使用。
版本兼容性也是CDH Hadoop服务版本运行旧版相关上游项目的原因。维护向后兼容性要困难得多,特别是如果API在不同版本之间发生变化。