而ADFS原理简单地说就是将非热点数据存入“数据库”,而非NameNode的内存。罗李说:“由于数据存放在数据库里,只要数据库‘不挂’就没有问题,NameNode的单点故障问题由此解决,同时也一并解决了内存瓶颈。系统升级不需要再停机,重启时间也由原来的一两个小时缩短到5分钟之内。总之,ADFS能提供10亿文件/目录的管理能力,其稳定性、性能和可维护性不输于甚至优于现有系统。”此外,值得一提的是,淘宝已经将ADFS开源在GitHub之上。
另一大改进,就是为减少磁盘使用量而实施了HDFS Raid技术。
“HDFS出于可靠性考虑,都是将一份数据存成三份,这意味着1GB的数据占用了3GB的存储容量,可靠性是有了,但经济性并不好。HDFS Raid就相当于Raid 10,原来1GB的数据所需要的空间从原来的3GB降到2.4GB,对我们来讲,就是上百万资金的节省,而可靠性却并没有丧失。”罗李说。
不过,罗李表示,HDFS Raid技术来源于Facebook,他们是在Facebook提供的版本上做了些改进。
此外,还一个无法被描述成“项目”的改进就是持续不断地“优化”。“虽然Hadoop的优势之一就是不够了就可以加机器,但加机器意味着更大的存储容量、更大的计算需求和更大的网络流量,对主节点都会带来新的压力,因此,每次在扩展之前,我们都要对系统进行评估,都需要优化代码。”罗李说。
罗李颇为骄傲地告诉记者,由于不断地对Hadoop内核进行优化,淘宝版本的Hadoop在性能上“比一些社区的Hadoop版本高出30%~50%”。
“毕竟,我们这么大的规模作支撑。因为系统的性能瓶颈只有在一定规模下才能暴露,而我们甚至将Java内核的漏洞都跑出来了。”罗李说。
不过,罗李坦承,自从今年七月份新的“云梯”版本上线之后,他们发现通过优化代码提高系统性能的空间越来越小了。“所以,我们开始和运维团队一起合作,打算去从硬件层面下手,例如购买更高性能的CPU、闪存、万兆网卡等。事实上,我们现在最紧缺的资源就是CPU和磁盘。”他说。
同时,罗李指出,对很多公司而言,在规模不是特别大的情况下,通过购买更强劲的硬件来提高集群性能也是一个好办法,而且其成本不一定比维持一支技术团队要高。而硬件产业链的上游厂商英特尔则公开表示,英特尔未来首要任务之一,就是要打造适用于大数据应用的“芯”,该公司今年三月发布的全新至强处理器E5产品家族,就能为分布式计算带来更优性能、能效、可扩展性和可管理性。同时,英特尔还将帮助合作伙伴打造可承载大数据应用的基础设施。
关于“云梯”集群未来的发展方向,罗李表示,短期内是存储结构和技术进行优化部署ADFS,并且开发HDFS NameNode HA技术,而长期来说,“云梯”将演变成多Master节点Hadoop集群。
如今,Hadoop之火有目共睹,那什么样的公司适合采尝试这一新兴技术?罗李回答道:“还应该是从业务角度出发。有海量数据需要处理,并且计算模型并不太复杂,对数据进行处理的过程可以分成一个个小的步骤去完成,就可以尝试Hadoop 技术。”