文档章节

一个MapReuce作业的从开始到结束--第4章 DataNode节点启动分析

brian_2017
 brian_2017
发布于 2017/01/17 09:22
字数 374
阅读 3
收藏 0

    从bin/hadoop中可知,DataNode节点对应的类DataNode类,它的源代码文件是hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java

DataNode启动执行函数的次序:

[1]. 执行main函数,在main函数里,调用静态函数secureMain函数。

[2].secureMain函数里,调用startDataNode函数创建DataNode对象,DataNode节点进入运行状态,然后让DataNode执行join函数,等待线程终结。

[3].而在startDataNode函数,调用instantiateDataNode创建DataNode对象,然后,调用runDatanodeDaemon函数,让DataNode对象成为一个守护线程。

[4].函数runDatanodeDaemon是静态的,它很短,它让DataNode对象成为一个线程,代码如下:

dn.dataNodeThread = newThread(dn, dnThreadName);

dn.dataNodeThread.setDaemon(true);

dn.dataNodeThread.start();

这里,dn就是DataNode对象,它有一个线程变量dataNodeThread,根据第一行语句,让dn成为一个线程,并执行start()

[5].dataNode节点启动后,它始终运行在DataNode类的run函数,直到接收到终结命令。

[6].run函数里,运行一个无限循环,在循环里执行offerService函数。这种设计的优点在于,假设DataNode一旦因某种异常出错,仍然能够重新运行。

[7].offerService函数,运行一个无限循环,在循环中,DataNode节点向NameNode节点发送心跳,取回命令,执行诸如区块更新,检查等等任务。

[8].DataNode节点和NameNode节点之间的通信是通过RPC方式执行的。

© 著作权归作者所有

brian_2017
粉丝 3
博文 61
码字总数 145216
作品 0
私信 提问
Hadoop各模块的具体分析

Hadoop集群架构 Hadoop集群由一个Master主节点和若干个Slave节点组成。其中,Master节点上运行NameNode和JobTracker守护进程;Slave节点上运行DataNode和TaskTracker守护进程。 Hadoop分别从...

牧师-Panda
2016/11/06
1K
0
第9章-构建Hadoop集群-笔记

控制脚本 Hadoop内置一些脚本来运行指令,在集群内启动和终止守护进程。 这些脚本存放在bin目录中,通过masters和slaves文件指定集群内的所有机器。 1、masters文件,主要记录运行辅助namen...

hiqj
2014/09/15
224
0
Hadoop中HDFS和MapReduce节点基本简介

Hadoop提供存储文件和分析文件的机制。 HDFS负责文件的存储,MapReduce负责文件的分析过程。 HDFS主要组件由NameNode和DataNode组成 HDFS文件切分成块(默认大小64M),以块为单位,每个块有...

zhao_xiao_long
2013/07/27
0
0
hadoop(2.5,2.6) HDFS偶发性心跳异常以及大量DataXceiver线程被Blocked故障处理分享

一、概要 公司近期Storm清洗程序那边反应HDFS会出现偶发性的异常导致数据写不进HDFS,另外一些Spark作业在大规模往HDFS灌数据时客户端会出现各种“all datanode bad..”以及服务端出现各种t...

zengzhaozheng
2015/08/13
0
0
阿里云 E-MapReduce产品优势及使用场景

E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 产品优势: 与自建集...

凹凹凸曼
2018/09/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
6
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部