1、版本功能对比
版本名称 | 版本时间 | 功能名称 | 说明 |
0.20.x | 2009.4.22-2011.10.17 | 目前线上基本功能 | Avatarnode,cloudera3均以该版本作为基础版本 |
0.23.x | 2011/11/11-现在 | Federation WebHDFS REST API; HttpFS Gateway | 与2.x.x相似,但是没有HA |
1.0.x(稳定版本) | 2011.12.27-2012.10.12 | 配额功能(某目录存储文件大小); Synthetic Load; 权限改进; WebHDFS REST API; C API libhdfs; | 弃用secondary namenode,引入checkpointnamenode(在snn基础上有改进),backupnode(温备,元数据存储在内存和磁盘); |
1.1.x(测试版本) | 2012.10.13-现在 | 同上 |
|
2.0.x(与cdh4类似) | 2012.5.23-现在 | HA(NFS,bookKeeper,QJM);Federation; WebHDFS REST API; HttpFS Gateway(支持类似curl等shell命令); RPC可定制(比如thrift,arvo,protocal Buffer); | 共享存储edits共享不仅支持NFS,还支持bookkeeper,QJM方式,支持自动,手动切换 |
注:
1)此处比较apache相关版本;
2)此处没有再列出HDFS基础功能;
2、改造相关版本对比
版本名称 | 版本功能 | 说明 |
Cdh3 | 目前线上HDFS基本功能 | 有稳定的hive,hbase与其兼容 |
Avatarnode | HA;手动切换;snapshot;raid | Facebook内部应该广泛,开源动力不足,开源的HA有不少bug;client端不能做到无缝failover;对zk依赖比较大; |
Jhdfs | HA;手动,自动 | 与hbase,hive等兼容;Client不能完全做到无缝failover;自动切换功能不成熟待升级; |
Cdh4 | HA;手动,自动;支持nfs,bookkeeper,QJM等方式日志同步; | 版本不稳定;有相应的hbase,hive等版本与其兼容; |
Apache 2.X | HA;手动,自动;支持nfs,bookkeeper,QJM等方式日志同步; | 由cloudera,hortonwork等开源,版本不稳定,有相应的hbase,hive等版本与其兼容; |
3、成本优劣对比
版本名称 | 人力成本 | 社区 | 风险 |
Jhdfs | 客户端failover; 升级自动切换功能; 引入federation机制; 日志共享机制多样化; RPC协议机制 性能优化; 测试; | 基于cdh3,与avatarnode改造,社区不活跃 | 目前几轮测试均通过;生产检验不足 |
Apache 2.x | 需代码深入研究; 测试; 跟踪修改bug; | 社区活跃,大量开发者提交代码;发表意见; | 代码不成熟; 有相应的hbase,hive等版本与其兼容; |
Cdh4 | 需代码深入研究; 测试; 跟踪修改bug; | 社区不活跃; | 代码不成熟;有相应的hbase,hive等版本与其兼容; |
注:
1) hbase之前使用的版本与apache2.0不兼容(见下面的jira连接地址),目前cloudera提供了与其相兼容的版本;
2) hive之前使用的版本与apache2.0兼容;
4、总结
根据各个角度比较的结果,及其我们这边需求,我们将版本选择的关注点集中到jhdfs,apache2.x,cdh4三个版本,具体如下:
1、 jhdfs兼容性没有问题,也完成了初期HA改造并测试通过,但还需要生产检验;基础版本为cdh3;相比cdh4及其apache2.x,还有比较多的新功能需要加入进去;
2、 apache2.x,cdh4与hbase等兼容性均没有问题,相比jhdfs,有比较多的新功能和性能方面的优化,并且3个版本中,apache2.x社区是最活跃的;
5、参考资料
1)QJM设计文档:
https://issues.apache.org/jira/browse/HDFS-3077;
2)snapshot机制:
http://hortonworks.com/blog/snapshots-for-hdfs/;
3)bookkeeper与nfs等性能对比测试:
https://cwiki.apache.org/BOOKKEEPER/hdfs-bookkeeperjournalmanager.html;
4)hadoop版本发布相关信息:
http://hadoop.apache.org/releases.html;
5)hadoop性能测试工具
http://hortonworks.com/blog/delivering-on-hadoop-next-benchmarking-performance/;
6)High AvailabilityFramework for HDFS NN
https://issues.apache.org/jira/browse/HDFS-1623;
7)分布式namenode实现方案
http://yanbohappy.sinaapp.com/?m=201204;
8)Likely hadoop23 vshadoop 20.x/1.x incompatibility
https://issues.apache.org/jira/browse/HBASE-5680;
9)cloudera推出与hadoop 2.0兼容版本
https://ccp.cloudera.com/display/SUPPORT/CDH4+Downloadable+Tarballs;