DataNode的启动实在DataNode.java中进行的,具体启动流程如下:
在secureMain中调用createDataNode方法,该方法
利用instantiateDataNode创建DataNode 对象,通过runDatanodeDaemon
进行DataNode注册,创建线程,设置守护线程,启动线程。
以上就是DataNode主线程启动的过程。
其中,创建创建DataNode 对象的过程如下:
在函数instantiateDataNode中, 调用makeInstance函数
在makeInstance函数中,创建dfs.data.dir指定的文件路径,确保至少有一个路径可以被创建,然后调用DataNode的构造函数。具体如下:
DataNode构造函数中调用startDataNode根据具体配置文件的信息进行具体的初始化过程。 startDataNode具体执行流程如下:
InetSocketAddress nameNodeAddr = NameNode.getServiceAddress(conf, true);
获取配置文件中fs.default.name指定的IP和端口。
这段代码判断是否是伪分布模式。之后会根据data中存储的文件和数据的特点判断是否需要进行恢复、升级、回滚的操作,如果没有按正常流程启动。
调用DataStorage类中的recoverTransitionRead进行检查,具体代码如下:
具体执行是在Storage.java中的analyzeStorage,通过检查返回当前所处的状态,在switch分支中不能处理的分支交与doRecover方法实现。处理完之后会根据StartupOption进行响应的处理,具体由doTransition(getStorageDir(idx), nsInfo, startOpt);方法执行,该方法的详细解释在另外一篇博客http://blog.csdn.net/zhangchunminggucas/article/details/7556050,最后执行this.writeAll();
将元信息写入磁盘。
当前DataNode可能处于一下状态:
analyzeStorage函数是Storage.java中比较重要的一个函数,主要的实现流程是:首先,根据数据目录是否存在和StartupOption选项判断状态是数据不存在还是没有进行初始化。然后根据下面的状态判断DataNode处于的状态,将获得的状态信息返回给recoverTransitionRead进行处理。
分享到:
相关推荐
为公司内部培训编制的Hadoop入门ppt,包含1.0,2.0相关核心理论知识,2.3.0以后版本知识不涉及
hdfs1.0精进
hdfs-secondarynamenode,nn2节点的作用,以及它的运行原理
HDFS体系结构(NameNode、DataNode详解)
从本地上传文件到HDFS上的代码!使用hadoop的API操作,使本地文件的代码上传到HDFS上!!!
Hadoop之HDFS源代码分析 pdf版 ,从源码学习文件系统的精髓,值得一看
先对Hadoop进行系统的阐述,然后重点介绍HDFS,分析HDFS源码
在 docker 容器中运行 hdfs 数据节点 暴露端口 TCP 50010 dfs.datanode.address 数据传输端口 TCP 50020 dfs.datanode.ipc.address ipc 服务器 ...docker run -d --link namenode:namenode hauptmedia/hdfs-datanode
HDFS的概念-namenode和datanode.pdf 学习资料 复习资料 教学资源
该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! ...
Hadoop源代码分析之HDFS篇,非常详实的介绍,好用的话,请给打好的评价
主要是hdfs读写的代码分析。可依据该文档进行深入代码。
Hadoop学习总结之二:HDFS读写过程解析
1.3.4 Datanode启动、心跳以及执行名字节点指令流程 26 1.3.5 HA切换流程 27 第2章 Hadoop RPC 29 2.1 概述 29 2.1.1 RPC框架概述 29 2.1.2 Hadoop RPC框架概述 30 2.2 Hadoop RPC的使用 36 2.2.1 ...
Hadoop源代码分析之HDFS篇,对源代码类结构,通讯流程等进行了介绍
技术背景随着公司业务量越来越大,原来的数据节点已经不能满足其存储数据的需求,需要进行节点的动态扩充<name> dfs.heartbeat.interval
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。...
基于hadoop实现,利用ssh框架实现hdfs网盘+源代码+文档说明 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,...
ReadArbiKV是读取任务序列文件到一个map变量里面,可以启动调试模式进行变量查看; ReadAndWritePatterns是读取序列文件,并解析其key和value,然后可视化输出,所谓可视化输出是指不是乱码的输出,具体可以参考...
介绍了大数据平台如何将hdfs中的分布式文件导入hbase 。源代码在cloudera-SCM 的cdh 4.8.1产品环境中验证通过。