加入收藏 | 设为首页 | 会员中心 | 我要投稿 三门峡站长网 (https://www.0398zz.com.cn/)- 云连接、设备管理、智能边缘云、云防火墙、数据加密!
当前位置: 首页 > 大数据 > 正文

如何浏览百万行 Hadoop 的源码?

发布时间:2021-06-03 18:59:52 所属栏目:大数据 来源:互联网
导读:一、阅读 HDFS 源码的缘由 HDFS 是大数据的最基础的设施了,几乎所有的离线存储都在 HDFS 上。 但是在大规模 HDFS 集群中,下面的问题通常会让我们无比头疼: 元数据的量级超过亿级之后,NameNode 的内存也会变得非常巨大,启动和维护都变的异常困难; 如何保
一、阅读 HDFS 源码的缘由
HDFS 是大数据的最基础的设施了,几乎所有的离线存储都在 HDFS 上。
但是在大规模 HDFS 集群中,下面的问题通常会让我们无比头疼:
元数据的量级超过亿级之后,NameNode 的内存也会变得非常巨大,启动和维护都变的异常困难;
如何保障 HDFS 的高可用?
NameNode 里面发生长时间的 GC 之后,导致 NameNode 进程退出,该如何解决?
如何优化 DataNode 的锁粒度,让其性能更高效?
以上种种问题,都需要我们阅读源码,甚至要修改它的源码才能解决。
所以虽然阅读源码非常痛苦,但是这个坎还是得过的。
二、如何阅读 Hadoop 这样的百万行代码的开源项目
首先 hadoop 是用 java 写的,所以一些 java 基础知识必不可少,比如锁,线程,设计模式,java 虚拟机,java io,不求很深入,基础得知道。
其次,不能一行行的读代码,这样很容易迷失在无边际的代码中,逃不出来,最后很容易就放弃了。
最后,以具体场景来驱动代码阅读。比如本文就是以 NameNode 的启动过程,来驱动代码阅读的。并且把关键的流程节点和类用流程图记录下来。
三、源码走读
找到 NameNode 类
从 main 方法开始,创建 NameNode
 
进入这个方法:
 
有很多的 switch case ,由于我们启动命令是 hadoop-daemon.sh start namenode,所以直接运行到 default 里面:

(编辑:三门峡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读