DataNode的工作机制

一个数据块在DataNode以文件的形式在磁盘上保存,分为两个文件,一个是数据本身,
一个是元数据信息(包括数据的长度,校验和,时间戳) 1.DataNode启动后,向NameNode进行注册
2.NameNode返回注册成功
3.以后按照每周期(1小时)上报所有块信息
4.心跳每3秒一次,心跳返回带有NameNode给DataNode的命令
5.超过10分钟+timestamp(可配置)没有接收到心跳包,那么认定该接点不可用

掉线时限参数设置

datanode 进程死亡或者网络故障造成 datanode 无法与 namenode 通信,namenode 不会立
即把该节点判定为死亡,要经过一段时间,这段时间暂称作超时时长。HDFS 默认的超时时
长为 10 分钟+30 秒。如果定义超时时间为 timeout,则超时时长的计算公式为:
timeout = 2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval。
而默认的 dfs.namenode.heartbeat.recheck-interval 大小为 5 分钟,dfs.heartbeat.interval 默
认为 3 秒。
需要注意的是 hdfs-site.xml 配置文件中的 heartbeat.recheck.interval 的单位为毫秒,
dfs.heartbeat.interval 的单位为秒。 <property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value>
</property>
<property>
<name> dfs.heartbeat.interval </name>
<value>3</value>
</property>

服役新数据节点

在原有集群基础上动态添加新的数据节点

步骤:
(1)在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建 dfs.hosts 文件
$ pwd
/opt/module/hadoop-2.7.2/etc/hadoop
$ touch dfs.hosts
$ vi dfs.hosts
添加主机名称(包含新服役的节点) (2)在 namenode 的 hdfs-site.xml 配置文件中增加 dfs.hosts 属性
<property>
<name>dfs.hosts</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts</value>
</property> (3)刷新 namenode
$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
(4)更新 resourcemanager 节点
$ yarn rmadmin -refreshNodes
19/03/24 14:17:11 INFO client.RMProxy: Connecting to ResourceManager athostname/ip:8033
(5)在 namenode 的 slaves 文件中增加新主机名称(不需要分发)
(6)单独命令启动新的数据节点和节点管理器
$ sbin/hadoop-daemon.sh start datanode
$ sbin/yarn-daemon.sh start nodemanager
(7)在 web 浏览器上检查是否 ok 如果数据不均衡,可以用命令实现集群的再平衡
102:$ ./start-balancer.sh

退役旧节点

步骤:
(1)在 namenode 的/opt/module/hadoop-2.7.2/etc/hadoop 目录下创建 dfs.hosts.exclude 文件
$ pwd
/opt/module/hadoop-2.7.2/etc/hadoop
$ touch dfs.hosts.exclude
$ vi dfs.hosts.exclude
添加主机名称(要退役的节点) (2)在 namenode 的 hdfs-site.xml 配置文件中增加 dfs.hosts.exclude 属性
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/module/hadoop-2.7.2/etc/hadoop/dfs.hosts.exclude</value>
</property> (3)刷新 namenode、刷新 resourcemanager
$ hdfs dfsadmin -refreshNodes
Refresh nodes successful
$ yarn rmadmin -refreshNodes (4)检查 web 浏览器,退役节点的状态为 decommission in progress(退役中),说明数据节点正在复制块到其他节点
(5)等待退役节点状态为 decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。
注意:如果副本数是 3,服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。 如果失败:
$ sbin/hadoop-daemon.sh stop datanode
$ sbin/yarn-daemon.sh stop nodemanager 6)从 include 文件中删除退役节点,再运行刷新节点的命令
(1)从 namenode 的 dfs.hosts 文件中删除退役节点
(2)刷新 namenode,刷新 resourcemanager 7)从 namenode 的 slave 文件中删除退役节点 hadoop105
8)如果数据不均衡,可以用命令实现集群的再平衡

DataNode多目录配置

DataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本

hdfs-site.xml:

	<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
</property>

本博客仅为博主学习总结,感谢各大网络平台的资料。蟹蟹!!

DataNode的工作机制的更多相关文章

  1. Hadoop_10_HDFS 的 DataNode工作机制

    1.DataNode的工作机制: 1.DataNode工作职责:存储管理用户的文件块数据  定期向namenode汇报自身所持有的block信息(通过心跳信息上报) (这点很重要,因为,当集群中发生某 ...

  2. Hadoop的namenode的管理机制,工作机制和datanode的工作原理

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  3. hdfs namenode/datanode工作机制

    一. namenode工作机制 1. 客户端上传文件时,namenode先检查有没有同名的文件,如果有,则直接返回错误信息.如果没有,则根据要上传文件的大小以及block的大小,算出需要分成几个blo ...

  4. DataNode 工作机制

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_35641192/article/d ...

  5. HDFS中DataNode工作机制

    1.DataNode工作机制 1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据(包括数据块的长度,块数据的校验和,以及时间戳). 2)DataNod ...

  6. Hadoop框架:DataNode工作机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.工作机制 1.基础描述 DataNode上数据块以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是数据块元数据包括长度.校验.时 ...

  7. Hadoop(五)—— HDFS NameNode、DataNode工作机制

    一.NN与2NN工作机制 NameNode(NN) 1.当HDFS启动时,会加载日志(edits)和镜像文件(fsImage)到内存中. 2-4.当元数据的增删改查请求进来时,NameNode会先将操 ...

  8. 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程

    这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程. 通过HDFS的心跳来测试repl ...

  9. 1 weekend110的NN元数据管理机制 + NN工作机制 + DN工作原理

    第一天的笔记,是伪分布hadoop集群搭建, 后面是hadoop Ha的分布式集群搭建 第一天,是HDFS的shell操作 NN工作机制 里面是二进制 DN工作原理 上传完了之后,在hdfs的虚拟路径 ...

随机推荐

  1. Q_DECLARE_METATYPE(继承QObject的类都已经自动注册),注册后的类型可以作为QVariant的自定义类型

    简介 这个宏用来注册一个类(含默认构造.默认析构.拷贝构造函数)为QMetaType类型 ,注册后的类型可以作为QVariant的自定义类型. 这个宏应该放在类或者结构体外面的下面,也可以放在一个非公 ...

  2. MinGW版Qt如何搭建lua环境?(详细步骤)

    操作系统是windows,lua是Lua for Windows 5.1.4包含了这三个头文件 <ignore_js_op>  在.pro里加了includepath: <ignor ...

  3. Cookie概述与应用

    一.概述 Cookie是Web服务器保存在客户端的一系列文本信息 典型应用一:判断注册用户是否已经登录网站. 典型应用二:"购物车"的处理. Cookie的作用:     对特定对 ...

  4. 深入解析Windows窗口创建和消息分发(三个核心问题:怎么将不同的窗口过程勾到一起,将不同的hwnd消息分发给对应的CWnd类去处理,CWnd如何简单有效的去处理消息,由浅入深,非常清楚) good

    笔记:争取不用看下面的内容,只看自己的笔记,就能记住这个流程,就算明白了: _tWinMain-->AfxWinMain,它调用四个函数: -->AfxWinInit用于做一些框架的初始化 ...

  5. 如何在Qt中处理(接收/发送)MFC或Windows消息(直接覆盖MainDialog::nativeEvent,或者QApplication::installNativeEventFilter安装过滤器,或者直接改写QApplication::nativeEventFilter)

    关于接收: Receive WM_COPYDATA messages in a Qt app. 还有个中文网站: 提问: 如何在Qt中模拟MFC的消息机制 关于发送: 用Qt在Windows下编程,如 ...

  6. java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence 解决方法

    编译遇到错误,如下: May 11, 2017 1:49:42 PM org.springframework.web.context.ContextLoader initWebApplicationC ...

  7. DNS之主服务器正向区域部署流程

    正向区域:将域名解析为IP 搭建步骤 1)定义区域 2)编写区域解析库文件 3)添加记录 环境介绍 [root@dns ~]# cat /etc/centos-releaseCentOS releas ...

  8. 音乐盒子mplayer问题review

    背景:实现全志R16-linux开发板上的mplayer的调试 一.mplayer软件架构:   这里详细介绍了alsa的相关知识 二.问题解决1:播放卡顿 0.问题描述:播放过程中会突然发生卡顿,就 ...

  9. RT-thread线程创建:动态线程与静态线程

    本文介绍了如何创建一个动态线程和一个静态线程 RT-thread版本:RT-thread system 3.1.0 开发环境:MDK5 为了编程方便,创建了sample1.c文件,然后添加到工程中 话 ...

  10. GRPC Oauth IdentityServer4

    Server端 StartUp类: using System; using System.Collections.Generic; using System.Linq; using System.Th ...