HDFS集群中DataNode的上线与下线
在HDFS集群的运维过程中,肯定会遇到DataNode的新增和删除,即上线与下线。这篇文章就详细讲解下DataNode的上线和下线的过程。
背景
在我们的微职位视频课程中,我们已经安装了3个节点的HDFS集群,master机器上安装了NameNode和SecondaryNameNode角色,slave1和slave2两台机器上分别都安装了DataNode角色。
我们现在来给这个HDFS集群新增一个DataNode,这个DataNode是安装在master机器上
我们需要说明的是:在实际环境中,NameNode和DataNode最好是不在一台机器上的,我们这里都放在master上,是因为我们的虚拟机资源有限。
我们现在启动master、slave1和slave2三台虚拟机,然后启动HDFS集群,我们在HDFS的Web UI上可以看到有两个DataNode:

DataNode上线
在NameNode所在的机器(master)上的配置文件hdfs-site.xml中增加"白名单"配置:
<property>
<!-- 白名单信息-->
<name>dfs.hosts</name>
<value>/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.include</value>
</property>
在master机器上执行下面的命令:
## 创建白名单文件
touch /home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.include
在/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.include文件中增加如下内容:
slave1其中,上面的
slave2
mastermaster是新增的DataNode所在的机器
在/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/slaves文件中新增:
master
3.然后在NameNode所在的机器(master)上执行如下的命令:
hdfs dfsadmin -refreshNodes
然后,我们在HDFS的Web UI上查看DataNode的信息:

可以看出,多了一个状态为Dead的DataNode

可以看出,多了一个状态为Dead的DataNode
4.在master机器上启动DataNode:
hadoop-daemon.sh start datanode
然后我们刷新HDFS的Web UI的DataNode信息,如下图:

可以看出,DataNode现在是3个了,master上的DataNode已经启动起来,并且加入集群中
DataNode的下线
我们现在下线master上的DataNode,步骤如下:
- 在NameNode所在的机器(master)上的配置文件hdfs-site.xml中增加"黑名单"配置:
<property>
<!-- 黑名单信息-->
<name>dfs.hosts.exclude</name>
<value>/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.exclude</value>
</property>
在master机器上执行下面的命令:
## 创建黑名单文件
touch /home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.exclude
在/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/dfs.exclude文件中增加如下内容:
master
其中,上面的master是需要下线的DataNode所在的机器
在/home/hadoop-twq/bigdata/hadoop-2.7.5/etc/hadoop/slaves文件中删除master行
然后在NameNode所在的机器(master)上执行如下的命令:
hdfs dfsadmin -refreshNodes
然后我们刷新HDFS的Web UI的DataNode信息,如下图:

这个时候,master上的DataNode的状态变为Decommission In Progress。这个时候,在master上的DataNode的数据都在复制转移到其他的DataNode上,当数据转移完后,我们再刷新HDFS Web UI后,可以看到DataNode的状态变为Decommissioned,表示这个DataNode已经下线,如下图:

4. 在master上停止DataNode:
hadoop-daemon.sh stop datanode
5.刷新DataNode:
hdfs dfsadmin -refreshNodes
HDFS集群中DataNode的上线与下线的更多相关文章
- Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统
前言 我们知道HDFS集群中,所有的文件都是存放在DN的数据块中的.那我们该怎么去查看数据块的相关属性的呢?这就是我今天分享的内容了 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 我 ...
- 在Hadoop集群中添加机器和删除机器
本文转自:http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html 无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个 ...
- Hadoop(五)搭建Hadoop与Java访问HDFS集群
前言 上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令: hdfs dfs -ls xxx hdfs dfs -mkdir -p /xxx/xxx hdfs dfs -cat ...
- Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
阅读目录(Content) 一.Hadoop客户端配置 二.Java访问HDFS集群 2.1.HDFS的Java访问接口 2.2.Java访问HDFS主要编程步骤 2.3.使用FileSystem A ...
- Hadoop基础-HDFS集群中大数据开发常用的命令总结
Hadoop基础-HDFS集群中大数据开发常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本盘博客仅仅列出了我们在实际生成环境中常用的hdfs命令,如果想要了解更多, ...
- Hadoop学习之路(十二)分布式集群中HDFS系统的各种角色
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...
- Hadoop(五)分布式集群中HDFS系统的各种角色
NameNode 学习目标 理解 namenode 的工作机制尤其是元数据管理机制,以增强对 HDFS 工作原理的 理解,及培养 hadoop 集群运营中“性能调优”.“namenode”故障问题的分 ...
- hadoop集群中动态添加新的DataNode节点
集群中现有的计算能力不足,须要另外加入新的节点时,使用例如以下方法就能动态添加新的节点: 1.在新的节点上安装hadoop程序,一定要控制好版本号,能够从集群上其它机器cp一份改动也行 2.把name ...
- vivo 万台规模 HDFS 集群升级 HDFS 3.x 实践
vivo 互联网大数据团队-Lv Jia Hadoop 3.x的第一个稳定版本在2017年底就已经发布了,有很多重大的改进. 在HDFS方面,支持了Erasure Coding.More than 2 ...
随机推荐
- GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系
统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...
- IDEA使用@Data注解,类调用get、set方法标红的解决办法
1.在setting中,下载lombok插件,安装完成后重启idea
- WPF 不要给 Window 类设置变换矩阵(应用篇)
原文:WPF 不要给 Window 类设置变换矩阵(应用篇) WPF 的 Window 类是不允许设置变换矩阵的.不过,总会有小伙伴为了能够设置一下试图绕过一些验证机制. 不要试图绕过,因为你会遇到更 ...
- ASP.NET Core在支付宝小程序中使用signalR
Github有一个经过重写的微信小程序SignalR的js类库 https://github.com/liangshiw/SignalRMiniProgram-Client 于是我把他改成支付宝小程序 ...
- font-svg
https://fontawesome.com/ http://www.fontawesome.com.cn/cheatsheet/ http://www.iconfont.cn/ string lj ...
- metasploit、msfvenom生成木马入侵电脑及手机
简介 msfvenom msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload and ...
- cookie遇到java.lang.IllegalArgumentException: Control character in cookie value or attribute
java.lang.IllegalArgumentException: Control character in cookie value or attribute. 该异常说明cookie中的val ...
- Delphi - 程序运行时不显示主窗体
// 不显示主窗体 Application.ShowMainForm := False;
- UCOSIII软件定时器
API函数 //创建 void OSTmrCreate (OS_TMR *p_tmr, CPU_CHAR *p_name, OS_TICK dly, OS_TICK period, OS_OPT op ...
- 【代码片段】定时记录CPU使用率并保存为CSV
原文链接 : [https://blog.zhoutao123.com/#/blog/article/64])(https://blog.zhoutao123.com/#/blog/article/6 ...