HDFS源码剖析第一篇:Hadoop Configuraion

本文主要探讨Hadoop中的Configuration,它以键值对形式存储配置信息,加载默认及动态资源如core-default.xml和core-site.xml。Configuration利用WeakHashMap管理资源,确保键在无引用时能被自动清理。在获取属性值时,会从多个资源重新加载。此外,defaultResource为静态,所有Configuration共享并保证线程安全,采用CopyOnWriteArrayList避免并发问题。Configuration还支持通过set方法修改配置并保存到overlay属性。
摘要由CSDN通过智能技术生成

Hadoop的源码实在庞大, 第一部分先分析Configuration。

Hadoop系统中的一个configuration,可以看做是一堆key-value对,保存在Configuration的properties属性中,而这些properties来源于 Resources,一个Resource可以是一个xml文件,可以是另一个Configuration,等等。Configuration会默认加载 core-default.xml和core-site.xml两个Resource。Configuration可以调用AddResource方法动 态加载Resource,加载后,会触发Hadoop系统中所有configuration的property重构。

为了知道Hadoop系统中有哪些Configuration, Configuration类中就由一个static 的 REGISTRY, 是一个WeakHashMap,但Value没有用到,保存了所有存在的Configuration。

WeakHashMap是一个比较有趣的东西。

HashMap当put(key,value)时,会给key加一个reference,当这个key在其他地方都被删除了,如果HashMap没有删除这个key, gc时是不会回收这个key的。

但WeakHashMap put (key, value)时,不会给key加一个reference, 当这个key在其他地方被删除后,gc之后,WeakHashMap会自动删除这个key, 所以,WeakHashMap非常适合管理资源,当资源被删除后,WeakHashMap也会自动删除这个key:

1.    新建WeakHa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值