教你便捷阅读 Hadoop 的源码?
HDFS 是大数据的最基础的设施了,几乎所有的离线存储都在 HDFS 上。 但是在大规模 HDFS 集群中,下面的问题通常会让我们无比头疼:
以上种种问题,都需要我们阅读源码,甚至要修改它的源码才能解决。 所以虽然阅读源码非常痛苦,但是这个坎还是得过的。 二、如何阅读 Hadoop 这样的百万行代码的开源项目 首先 hadoop 是用 java 写的,所以一些 java 基础知识必不可少,比如锁,线程,设计模式,java 虚拟机,java io,不求很深入,基础得知道。 其次,不能一行行的读代码,这样很容易迷失在无边际的代码中,逃不出来,最后很容易就放弃了。 最后,以具体场景来驱动代码阅读。比如本文就是以 NameNode 的启动过程,来驱动代码阅读的。并且把关键的流程节点和类用流程图记录下来。 三、源码走读 找到 NameNode 类 这个就表示,DataNode 每次心跳都要和 NameNode 汇报 自己的 Block 个数,每次汇报,这个值都会加 1. 如果 DataNode 汇报上来的 Block 个数小于所有可用的 Block 个数,就进入安全模式。 再来看第二个条件:
这个条件表示,所有可用的 DataNode 小于配置的个数,则进入安全模式。 但是 datanodeThreshold 的默认配置值是 0,所以这个条件不启用。 第三个条件:
这个方法就是我们前面检查资源时,赋值出来的变量: (编辑:桂林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |