HDFS:不同版本评比分析

原文:http://blog.csdn.net/liuhong1123/article/details/8372517

liuhong1123 2012-12-22 10:08

版本功能对比

版本名称 版本时间 功能名称 说明
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方式,支持自动,手动切换

改造相关版本对比

版本名称 版本功能 说明
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等版本与其兼容;

成本优劣对比

版本名称 人力成本 社区 风险
Jhdfs 客户端failover;升级自动切换功能;引入federation机制;日志共享机制多样化;RPC协议机制;性能优化;测试; 基于cdh3,与avatarnode改造,社区不活跃 目前几轮测试均通过;生产检验不足
Apache 2.x 需代码深入研究;测试;跟踪修改bug; 社区活跃,大量开发者提交代码;发表意见; 代码不成熟; 有相应的hbase,hive等版本与其兼容;
Cdh4 需代码深入研究;测试;跟踪修改bug; 社区不活跃; 代码不成熟;有相应的hbase,hive等版本与其兼容;

总结

根据各个角度比较的结果,及其我们这边需求,我们将版本选择的关注点集中到jhdfs,apache2.x,cdh4三个版本,具体如下:

  1. jhdfs兼容性没有问题,也完成了初期HA改造并测试通过,但还需要生产检验;基础版本为cdh3;相比cdh4及其apache2.x,还有比较多的新功能需要加入进去;
  2. apache2.x,cdh4与hbase等兼容性均没有问题,相比jhdfs,有比较多的新功能和性能方面的优化,并且3个版本中,apache2.x社区是最活跃的;

参考资料

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