《Hadoop MapReduce实战手册》一2.4 DataNode下架

简介:

本节书摘来异步社区《Hadoop MapReduce实战手册》一书中的第2章,第2.4节,作者: 【美】Srinath Perera , Thilina Gunarathne 译者: 杨卓荦 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 DataNode下架

Hadoop MapReduce实战手册
有些时候你可能想让一个HDFS集群的一个或多个数据节点下架。本节展示了如何优雅地让使用中的DataNode下架而不会导致数据丢失,而且无需重新启动集群。

操作步骤
下列步骤显示了如何让数据节点优雅地下架。

  1. 如果集群没有排除文件配置,则需要向集群中添加一个排除文件(exclude file)。在NameNode上创建一个空文件,并且通过添加以下属性从conf/hdfs-site.xml文件指向它。
<property> 
  <name>dfs.hosts.exclude</name>
  <value>[FUL_PATHTO_THE_EXCLUDE_FILE_]</value>
  <description>Names a file that contains a list of hosts thatare
not permitted to connect to the namenode. The full pathname of
the file must be specified. If the value is empty, no hosts are
excluded.</description>
</property>
  1. 将要下架的节点的主机名添加到exclude文件中。
  2. 运行下列命令以重新加载NameNode的配置。这将启动下架过程。下架过程可能需要相当一段时间,因为它需要确保数据块的复制操作没有影响集群的其他任务。
>bin/hadoopdfsadmin -refreshNodes
  1. 下架进度显示在HDFS中用户界面下的Decommissioning Nodes页面。也可以使用下面的命令监控下架进度。不要关闭这些下架中节点,直到下架完成。
>bin/hadoopdfsadmin -report
...
...
Name: myhost:50010
Decommission Status : Decommission in progress
Configured Capacity: ...
...
  1. 当想要把这些节点重新添加回集群时,可以从exclude文件中删除节点,执行bin/Hadoop
dfsadmin –refreshNodes命令。
  1. 下架过程可以通过从exclude文件中删除该节点的名称、然后执行bin/hadoopd dfsadmin
-refreshNodes命令来停止。

工作原理
在节点下架时,HDFS会将该节点中的块复制到集群中的其他节点。下架可能是一个非常缓慢的过程,因为HDFS故意使它缓慢地运行,以避免集群过载。如果直接关闭节点,而不采用下架,可能会导致数据丢失。

下架完成后,将不再允许exclude文件所提及的节点与NameNode通信。

相关文章
|
6月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
146 2
|
4月前
|
数据采集 分布式计算 Hadoop
使用Hadoop MapReduce进行大规模数据爬取
使用Hadoop MapReduce进行大规模数据爬取
|
6月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
186 3
|
6月前
|
分布式计算 资源调度 数据可视化
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
98 1
|
6月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
204 0
|
6月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
88 0
|
6月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
131 0
|
1月前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
162 79
|
6月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
328 6
|
4月前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
165 4

相关实验场景

更多