文档章节

DataNode与Namenode的互动

天行自息
 天行自息
发布于 2018/11/01 18:19
字数 780
阅读 15
收藏 0

DataNode与NameNode之间基本的通信就是rpc

(1)登记,dataNode一经启动就应该主动与namenode 建立rpc连接,并向其登记,让Namenode知道有这么一个DataNode已经在位了。

(2)向NameNode发送心跳信号并在这上面搭载各种报告,一来让它知道这个DataNode继续存在,二来让它知道这个DataNode上的存储发生了一些什么变化,特别是节点上有哪些数据块的副本,以及还有多少资源可供使用,这也总是由DataNode主动发起的。

(3)NameNode发回响应消息,由DataNode执行NameNode搭载在响应信息里的命令和要求。

心跳机制

    Hadoop集群是master/slave模式,master包括NameNode和ResourceManager,slave包括DataNode和NodeManager。

     master启动的时候,会开一个 rpc server那里,等待slave心跳。slave启动时,会连接master,并每隔3秒钟主动向master发送一个"心跳",这个时间可以通过"hearbeat.recheck.interval"属性来设置,将自己的状态信息告诉master,然后master也是通过这个心跳的返回值,向slave节点传达指令。

    需要指出的是,namenode与datanode之间的通信,ResourceManager与NodeManager之间的通信,都是通过"心跳"完成的。

(一)DataNode与NameNode之间的心跳

            DataNode上对于每个NameNode都有个BPServiceActor线程,这个线程会定期向其NameNode发送心跳报告。

             在NameNode端,DataNode这一边的BPServiceActor线程通过BP和Rpc机制将心跳报文发送到NameNode这一边,然后就睡眠等待Namenode发回响应报文。

              在NameNode端,NameNode这一边由NameNodeRpcServer负责接收和处理来自各个DataNode的心跳和报告做出反应,所以NameNode上的pb层接收到来自DataNode的心跳报文以后会调用NameNodeRpcserver的sendHearbeat()方法。

               DataNode这一边sendHearbeat,NameNode这一边receiveHearbeat,但是由于rpc要求两边的函数名相同,所以Namenode这一边也是sendHearbeat。但事实上,Namenode不会发送心跳信号。

hadoop通信机制:

hadoop的通信机制就是rpc

    rpc是“Remote Peocedure Call”即"远地址过程调用"的缩写,这个机制的目的,是让一台机器上的程序像调用本地的"过程"那样来调用别的机器上的某些过程。

    对rpc机制的要求:从程序代码上看,过程的调用者就好像在调用本地函数一样,但是被调用过程的代码实际上在别的机器上,被调用的过程是在别的机器上执行,然后返回执行的结果,对调用者而言就像从本地的函数调用返回一样,在这个过程中,调用者(线程)发动调用之后,就会进入睡眠,直至调用返回时才被唤醒。

© 著作权归作者所有

上一篇: Yarn与Mr
天行自息
粉丝 0
博文 20
码字总数 16611
作品 0
丰台
私信 提问
Hadoop HDFS概念学习系列之DataNode(六)

  HDFS的管理节点是NameNode,用于存储并管理元数据。那么具体的文件数据存储在哪里呢?DataNode就是负责存储数据的组件,一个数据块Block会在多个DataNode中进行冗余备份;而一个DataNode对...

技术小哥哥
2017/11/14
0
0
DADOOP集群HDFS工作机制

hdfs的工作机制 概述 1. HDFS集群分为两大角色:NameNode、DataNode (Secondary Namenode) 2. NameNode负责管理整个文件系统的元数据 3. DataNode 负责管理用户的文件数据块 4. 文件会按照固...

weixin_40747272
2018/04/15
0
0
记一次查找Hdfs磁盘占用空间比实际存储文件大4倍的原因

在一次主备namenode发生切换后,重启datanode节点,发现磁盘空间很大,想清理一下磁盘, 通过命令Hdfs dfs -du -h --max-depth=1 / 发现实际文件的大小只有8g,通过du -h --max-depth=1 /ha...

PageYi
2018/10/23
0
0
分布式文件系统HDFS简要介绍

HDFS 的设计主要基于以下六点考虑: (1)容错 独立计算机的硬件错误不能当异常情况处理,而属于正常状态。HDFS 文件系统中会有许多个普通计算机节点构成, 在任何时间任何一个节点都有可能出现...

Oliver鱼
2015/07/05
0
0
hadoop架构详解一

hadoop架构组成 hadoop有两部分组成:分布式文件系统HDFS,统一的资源管理器YARN hdfs架构 Client:切分文件;访问或通过命令行管理HDFS;与NameNode交互,获取文件位置信息;与DataNode交互...

张欢19933
2016/03/29
224
0

没有更多内容

加载失败,请刷新页面

加载更多

重定向又是什么“垃圾”——教你再分类

  前言:之前写了几篇JSP的博客,现在又回过头来看Servlet,温故而知新,再回顾回顾,总会有收获的。以前学习Servlet感觉内容很多,现在看的时候,其实也没多少东西,只需知道Servlet的生命...

SEOwhywhy
16分钟前
0
0
一图胜千言!这10种可视化技术你必须知道

全文共4549字,预计学习时长9分钟 图片来源:Willian Justen deVasconcellos on Unsplash 相比于浩如烟海的数据表格,大部分人还是更喜欢视觉资料,这一点已不足为奇。也是出于这个原因,人们...

读芯术
20分钟前
1
0
Spring Boot 自动配置(auto-configurtion) 揭秘

本章,我们为你揭秘Spring Boot自动配置(Auto Configuration)运行机制,谈到auto-configuration,肯定离不开@EnableAutoConfiguration注解。 package org.springframework.boot.autoconfi...

爱编程的浪子
26分钟前
0
0
RabbitMQ延迟消息的延迟极限是多少?

之前在写Spring Cloud Stream专题内容的时候,特地介绍了一下如何使用RabbitMQ的延迟消息来实现定时任务。最近正好因为开发碰到了使用过程中发现,延迟消息没有效果,消息直接就被消费了的情...

程序猿DD
27分钟前
2
0
MySQL知识库语雀

类型:所有 MySQL知识库 MySQL知识库 06-05 20:57 近期阅读文章 近期已读或者未读文章列表 03-08 10:49 日常脚本 这里是平时工作会用到的一些常用的脚本,作为统一管理 03-08 05:09 培训 03...

rootliu
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部