大数据框架之Hadoop:HDFS(六)DataNode(面试开发重点)-程序员宅基地

技术标签: hdfs  hadoop  大数据框架之Hadoop  大数据  

6.1DataNode工作机制

DataNode工作机制,如下图所示。

Untitled (5)

1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。

2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。

3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。

4)集群运行中可以安全加入和退出一些机器。

6.2 数据完整性

思考:如果电脑磁盘里面存储的数据是控制高铁信号灯的红灯信号(1)和绿灯信号(0),但是存储该数据的磁盘坏了,一直显示是绿灯,是否很危险?同理DataNode节点上的数据损坏了,却没有发现,是否也很危险,那么如何解决呢?

如下是DataNode节点保证数据完整性的方法。

1)当DataNode读取Block的时候,它会计算CheckSum。

2)如果计算后的CheckSum,与Block创建时值不一样,说明Block已经损坏。

3)Client读取其他DataNode上的Block。

4)DataNode在其文件创建后周期验证CheckSum,如下图所示。

Untitled (6)

6.3 掉线时限参数设置

Untitled (7)

需要注意的是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>

6.4 服役新数据节点

  1. 需求

随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。

  1. 环境准备

(1)在hdp103主机上再克隆一台hdp104主机

(2)修改IP地址和主机名称

(3)删除原来HDFS文件系统留存的文件(/opt/module/hadoop-2.7.7/data和log)

(4)source一下配置文件

[root@hdp104 hadoop-2.7.7]# source /etc/profile
  1. 服役新节点具体步骤

(1)直接启动DataNode,即可关联到集群

[root@hdp104 hadoop-2.7.7]# sbin/hadoop-daemon.sh start datanode
[root@hdp104 hadoop-2.7.7]# sbin/yarn-daemon.sh start nodemanager

(2)在hdp104上上传文件

[root@hdp104 hadoop-2.7.7]# hadoop fs -put /opt/module/hadoop-2.7.7/LICENSE.txt /

(3)如果数据不均衡,可以用命令实现集群的再平衡

[root@hdp104 sbin]# ./start-balancer.sh
starting balancer, logging to /opt/module/hadoop-2.7.7/logs/hadoop-atguigu-balancer-hadoop102.out

Time Stamp               Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved

6.5 退役旧数据节点

6.5.1添加白名单

添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,都会被退出。

配置白名单的具体步骤如下:

(1)在NameNode的/opt/module/hadoop-2.7.2/etc/hadoop目录下创建dfs.hosts文件

[root@hdp101 hadoop]# pwd
/opt/module/hadoop-2.7.2/etc/hadoop
[root@hdp101 hadoop]# touch dfs.hosts
[root@hdp101 hadoop]# vi dfs.hosts

添加如下主机名称(不添加hdp104)

hdp101
hdp102
hdp103

(2)在NameNode的hdfs-site.xml配置文件中增加dfs.hosts属性

<property>
    <name>dfs.hosts</name>
    <value>/opt/module/hadoop-2.7.7/etc/hadoop/dfs.hosts</value>
</property>

(3)配置文件分发

[root@hdp101 hadoop]# xsync hdfs-site.xml

(4)刷新NameNode

[root@hdp101 hadoop-2.7.7]# hdfs dfsadmin -refreshNodes
Refresh nodes successful

(5)更新ResourceManager节点

[root@hdp101 hadoop-2.7.7]$ yarn rmadmin -refreshNodes
17/06/24 14:17:11 INFO client.RMProxy: Connecting to ResourceManager at hdp103/192.168.1.103:8033

(6)在web浏览器上查看

  1. 如果数据不均衡,可以用命令实现集群的再平衡
[root@hdp101 sbin]# ./start-balancer.sh
starting balancer, logging to /opt/module/hadoop-2.7.7/logs/hadoop-root-balancer-hdp101.out
Time Stamp               Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved

6.5.2黑名单退役

在黑名单上面的主机都会被强制退出。

  1. 在NameNode的/opt/module/hadoop-2.7.7/etc/hadoop目录下创建dfs.hosts.exclude文件
[root@hdp101 hadoop]# pwd
/opt/module/hadoop-2.7.7/etc/hadoop
[root@hdp101 hadoop]# touch dfs.hosts.exclude
[root@hdp101 hadoop]# vi dfs.hosts.exclude

添加如下主机名称(要退役的节点)

hdp104
  1. 在NameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude属性
<property>
    <name>dfs.hosts.exclude</name>
    <value>/opt/module/hadoop-2.7.7/etc/hadoop/dfs.hosts.exclude</value>
</property>
  1. 刷新NameNode、刷新ResourceManager
[root@hdp101 hadoop-2.7.7]# hdfs dfsadmin -refreshNodes
Refresh nodes successful

[root@hdp101 hadoop-2.7.7]# yarn rmadmin -refreshNodes
17/06/24 14:55:56 INFO client.RMProxy: Connecting to ResourceManager at hdp103/192.168.1.103:8033
  1. 检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点,如图3-17所示

image-20230201205704352

  1. 等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意:如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役,如图3-18所示

image-20230201205649708

[root@hdp104 hadoop-2.7.7]# sbin/hadoop-daemon.sh stop datanode

stopping datanode

[root@hdp104 hadoop-2.7.7]# sbin/yarn-daemon.sh stop nodemanager
  1. 如果数据不均衡,可以用命令实现集群的再平衡
[root@hdp101 hadoop-2.7.7]# sbin/start-balancer.sh 
starting balancer, logging to /opt/module/hadoop-2.7.7/logs/hadoop-root-balancer-hdp101.out
Time Stamp               Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved

6.6 Datanode多目录配置

  1. DataNode也可以配置成多个目录,每个目录存储的数据不一样。即:数据不是副本。
  2. 具体配置如下

(1)在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>

(2)停止集群,集群中删除data和logs中所有数据。

[root@hdp101 hadoop]# rm -rf data/ logs/
[root@hdp102 hadoop-2.7.7]$ rm -rf data/ logs/
[root@hdp103 hadoop-2.7.7]$ rm -rf data/ logs/

(3)格式化集群并启动。

[root@hdp101 hadoop]# bin/hdfs namenode –format
[root@hdp101 hadoop]# sbin/start-dfs.sh

(4)查看结果

[root@hdp101 dfs]$ ll
总用量 12
drwx------. 3 atguigu atguigu 4096 1211 08:03 data
drwxrwxr-x. 3 atguigu atguigu 4096 1211 08:03 name1
drwxrwxr-x. 3 atguigu atguigu 4096 1211 08:03 name2
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yiluohan0307/article/details/129033717

智能推荐

发送邮件工具类_发送邮件 filestoragetype-程序员宅基地

文章浏览阅读250次。发送邮件工具类package com.wfsc.utils;import com.wfsc.entity.User;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.io_发送邮件 filestoragetype

CNN卷积神经网络介绍_cnn的优势-程序员宅基地

文章浏览阅读6.5k次,点赞3次,收藏59次。1简介1.1离散卷积1.2池化2卷积算法2.1没有零填充,单位跨度2.2零填充,跨步2.2.1一半(相同)的填充2.2.2全填充2.3无零填充,非跨步2.4零填充,非跨步3池算术184转置卷积算法194.1卷积作为矩阵运算4.2转置卷积4.3无零填充,跨步,转置4.4零填充,跨步,转置4.4.1一半(相同)填充,转置4.4.2全填充,转置4.5无零填充,非跨步,..._cnn的优势

打印机在计算机里被删掉,打印机显示正在删除怎么办 打印机显示正在删除解决办法...-程序员宅基地

文章浏览阅读3k次。打印机打印后,总是显示正在删除怎么办?有什么办法可以解决?下面就给大家带来 打印机显示正在删除解决办法 ,一起来看看。方法一:删除打印机打印任务时,电脑提示正在删除,却一直没有显示删除。其实,打印任务可能已经被删除了,只是电脑没有显示而已。最简单的方法,关闭打印机,重新打印打印机电源。这时候再检查打印任务,就已经全部删除了。这是由于,当前系统下,某文件有可能正在被系统本身或是其他应用软件调用,而正..._打印机一直正在删除怎么办

python opencv resize函数_python opencv 等比例调整(缩放)图片分辨率大小代码 cv2.resize()...-程序员宅基地

文章浏览阅读1.3k次。# -*- coding: utf-8 -*-"""@File : 200113_等比例调整图像分辨率大小.py@Time : 2020/1/13 13:38@Author : Dontla@Email : [email protected]@Software: PyCharm"""import cv2def img_resize(image):height, width = image...._opencv小图等比例缩放

【OFDM、OOK、PPM、QAM的BER仿真】绘制不同调制方案的误码率曲线研究(Matlab代码实现)-程序员宅基地

文章浏览阅读42次。对于这些调制技术的误码率(BER)研究是非常重要的,因为它们可以帮助我们了解在不同信道条件下系统的性能表现。通过以上步骤,您可以进行OFDM、OOK、PPM和QAM的误码率仿真研究,并绘制它们的误码率曲线,以便更好地了解它们在不同信道条件下的性能特点。针对这些调制技术的BER研究是非常重要的,可以帮助我们更好地了解这些技术在不同信道条件下的性能表现,从而指导系统设计和优化。6. 分析结果:根据误码率曲线的比较,分析每种调制方案在不同信噪比条件下的性能,包括其容忍的信道条件和适用的应用场景。_ber仿真

【已解决】Vue的Element框架,日期组件(el-date-picker)的@change事件,不会触发。_el-date-picker @change不触发-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏3次。1、场景照抄官方的实例,绑定了 myData.Age 这个值。实际选择某个日期后,从 vuetool(开发工具)看,值已经更新了,但视图未更新。2、尝试绑定另一个值: myData,可以正常的触发 @change 方法。可能是:值绑定到子对象时,组件没有侦测到。3、解决使用 @blur 代替 @change 方法。再判断下 “值有没有更新” 即可。如有更好的方法,欢迎评论!..._el-date-picker @change不触发

随便推点

Roser S.Pressman在UMLChina交流实录-程序员宅基地

文章浏览阅读2.2k次。 UMLChina第十三期专家交流实录返回首页 返回目录北京时间2002年1月10日(星期四)晚上21:30-23:30 嘉宾:Roser S.Pressman博士是软件工程领域国际知名的咨询专家和作者,R.S. Pressman & Associates, Inc的创始人,已有超过30年的产业经验,主要从事工程产品软件和系统软件的开发技术工

【Linux】shell编程1(shell脚本书写格式、脚本中的环境变量、普通变量、自定义环境变量、变量数组、位置变量、状态变量、内置变量、变量扩展)_linux脚本格式-程序员宅基地

文章浏览阅读2.4k次。${parameter:-word}如果parameter的变量值为空或者未赋值,则会返回word字符串代替变量值${parameter:=word}如果parameter的变量值为空或者未赋值,则设置这个变量值为word,返回值也是word${parameter:?word} 如果parameter的变量值为空或者未赋值,那么word字符串会被当做标准错误输出,否则输出变量的值${parameter:+word} 如果parameter的变量值为空或者未赋值,则输出空值,否则wo_linux脚本格式

聊聊线程之run方法_start 是同步还是异步-程序员宅基地

文章浏览阅读2.4k次。话不多说参考书籍 汪文君补充知识:start是异步,run是同步,start的执行会经过JNI方法然后被任务执行调度器告知给系统内核分配时间片进行创建线程并执行,而直接调用run不经过本地方法就是普通对象执行实例方法。什么是线程?1.现在几乎百分之百的操作系统都支持多任务的执行,对计算机来说每一个人物就是一个进程(Process),在每一个进程内部至少要有一个线程实在运行中,有时线..._start 是同步还是异步

制作非缘勿扰页面特效----JQuery_单击标题“非缘勿扰”,<dd>元素中有id属性的<span>的文本(主演、导演、标签、剧情-程序员宅基地

文章浏览阅读5.3k次,点赞9次,收藏34次。我主要用了层次选择器和属性选择器可以随意选择,方便简单为主大体CSS格式 大家自行构造网页主体<body> <div class='main' > <div class='left'> <img src="images/pic.gif" /> <br/><br/> <img src="images/col.gif" alt="收藏本片"/&_单击标题“非缘勿扰”,元素中有id属性的的文本(主演、导演、标签、剧情

有了这6款浏览器插件,浏览器居然“活了”?!媳妇儿直呼“大开眼界”_浏览器插件助手-程序员宅基地

文章浏览阅读901次,点赞20次,收藏23次。浏览器是每台电脑的必装软件,去浏览器搜索资源和信息已经成为我们的日常,我媳妇儿原本也以为浏览器就是上网冲浪而已,哪有那么强大,但经过我的演示之后她惊呆了,直接给我竖起大拇指道:“原来浏览器还能这么用?大开眼界!今天来给大家介绍几款实用的浏览器插件,学会之后让你的浏览器“活过来”!_浏览器插件助手

推荐文章

热门文章

相关标签