`
Fire_Balrog
  • 浏览: 19601 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Hadoop的DistributedFileSystem改造 设计模式的威力

阅读更多

最近在对HDFS对DistribuitedFileSystem进行改造,目标是实现一个自己定制的DFS。

显而易见,大概会有以下几种构思:

一是完全实现一个新的DFS,显然难度也太大,也等于是自己在重造车轮,显然不靠谱;

二是修改现有的DFS,在其中加入各种判断和分支,这也显然不靠谱;

最后选择了写一个包装器,实现的是原有的FileSystem的接口,然后在其中包含DitstributedFileSytstem

的类对象,然后根据实际的需求,对这个类对象进行各种操作。

使用的时候,将原有的hadoop-site.xml的fs.hdfs.impl改成这个类即可,

当系统对FileSystem实例化的时候将自动实例话这个类,相当的方便,因此在一定程度上做到类插件化的效果,同时也能保证完全不影响任何的原有的代码。


其实这个做法与最近了解到的其他在使用hadoop的大公司以及hadoop社区的做法十分类似,即尽量在原有代码的外围做各种的包装,而非对原有代码进行修改,特别是针对一些新功能或新设计,而非涉及到底层效率或原有框架的修改;

这样做的好处十分明显,一方面减少了对原有代码的影响,避免出现意料之外的状况;另一方面也使得各种新功能变成可配置的选项,这也是轻量化的一种。


做了半天标题party,其实上面说的就是设计模式中的适配器模式。

引用《Head First设计模式》中的定义:

适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。


一句话:设计模式威武啊。

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics