【原创】hadoop集群删除datanode

简介: 环境说明: 主机名       IP地址            用途 master       192.168.5.54      namenode、jobtracker slave1       192.
环境说明:
主机名       IP地址            用途
master       192.168.5.54      namenode、jobtracker
slave1       192.168.5.56      datanode、tasktracker
slave2       192.168.5.57      datanode、tasktracker
slave3       192.168.5.58      datanode、secondarynamenode、tasktracker
平常我们管理的hadoop集群中的datanode节点意外宕机属于正常现象,但是当我们在平常的巡检中发现机器硬件故障需要停机维修的话,则需要按照规范的流程去把集群中的节点踢除,当然你也可以完全把进程都kill掉,我这里只介绍如何规范的将需要停机的datanode节点踢除集群。
加入slave1机器出现了硬件问题,我需要停机维护的话,则要先踢除集群。操作方法如下:
1、在namenode节点的hadoop部署目录下的conf目录下新建一个excludes文件。(我这里目录就是/root/hadoop/conf),内容如下:
touch /root/hadoop/conf/excludes
我这里只踢除一个节点,所以就写了一个IP地址,如要踢除多个则每行写一个哈。注意只能写IP地址。
[root@master conf]# cat excludes
192.168.5.56
2、在/root/hadoop/conf/core-site.xml文件下新增如下内容保存退出:
   
          dfs.hosts.exclude
          /root/hadoop/conf/excludes
          true
   
3、然后在namenode节点执行如下命令,也就是让namenode重新读取配置文件。不需要重启集群。
[root@master ~]# hadoop/bin/hadoop dfsadmin -refreshNodes
4、查看集群状态:
[root@master ~]# hadoop/bin/hadoop dfsadmin -report
Configured Capacity: 128672038912 (119.84 GB)
Present Capacity: 73672425472 (68.61 GB)
DFS Remaining: 73434574848 (68.39 GB)
DFS Used: 237850624 (226.83 MB)
DFS Used%: 0.32%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Datanodes available: 3 (3 total, 0 dead)
Name: 192.168.5.57:50010
Decommission Status : Normal
Configured Capacity: 67481608192 (62.85 GB)
DFS Used: 118906880 (113.4 MB)
Non DFS Used: 26367545344 (24.56 GB)
DFS Remaining: 40995155968(38.18 GB)
DFS Used%: 0.18%
DFS Remaining%: 60.75%
Last contact: Fri Jun 29 16:58:06 CST 2012

Name: 192.168.5.58:50010
Decommission Status : Normal
Configured Capacity: 31704776704 (29.53 GB)
DFS Used: 118906880 (113.4 MB)
Non DFS Used: 16464519168 (15.33 GB)
DFS Remaining: 15121350656(14.08 GB)
DFS Used%: 0.38%
DFS Remaining%: 47.69%
Last contact: Fri Jun 29 16:58:05 CST 2012

Name: 192.168.5.56:50010
Decommission Status : Decommission in progress
Configured Capacity: 29485654016 (27.46 GB)
DFS Used: 36864 (36 KB)
Non DFS Used: 12167548928 (11.33 GB)
DFS Remaining: 17318068224(16.13 GB)
DFS Used%: 0%
DFS Remaining%: 58.73%
Last contact: Fri Jun 29 16:58:05 CST 2012
通过网页 http://192.168.5.54:50070也能查看到:
img_604c5c6f7b5f4891f73f8cdbfcace22d.jpg
因为我hdfs文件系统上的数据不是很多,这个状态表明后台正在进行块移动。如果完成后状态则会变成
Decommissioned的字样,当然这个得看你的文件系统的数据量大小决定的。 还有一个很重要的说一下,你的备份份数必须小于或者等于你要踢除后所有正常datanode的数量,不然你的Decommissioned in Progress这个状态会一直永远下去。这样也就得出一个公式如下:
备份份数
备份份数=踢除不正常datanode节点后所有正常datanode节点的总和
我这很快就变成了这个状态:
Name: 192.168.5.56:50010
Decommission Status : Decommissioned
Configured Capacity: 0 (0 KB)
DFS Used: 0 (0 KB)
Non DFS Used: 0 (0 KB)
DFS Remaining: 0(0 KB)
DFS Used%: 100%
DFS Remaining%: 0%
Last contact: Thu Jan 01 08:00:00 CST 1970
再查看网页被移除的节点就查看不到了(这我就懒得截图了),这样基本就完成了按正规流程移除集群中的datanode。下面介绍机器修好了,我要怎么加入到集群中来。
1、新加的节点上启动tasktracker进程
[root@slave1 ~]# hadoop/bin/hadoop-daemon.sh start tasktracker
starting tasktracker, logging to /root/hadoop/bin/../logs/hadoop-root-tasktracker-slave1.out
jps查看一下,不放心的可以ps -ef | grep java看一下:
[root@slave1 ~]# jps
17528 TaskTracker
17571 Jps
2、这个时候我们不能直接启动datanode进程,我们可以试试看:
[root@slave1 ~]# hadoop/bin/hadoop-daemon.sh start datanode
starting datanode, logging to /root/hadoop/bin/../logs/hadoop-root-datanode-slave1.out
[root@slave1 ~]# jps
17528 TaskTracker
17811 Jps
17761 DataNode
[root@slave1 ~]# jps                  =====> datanode进程直接马上消失。可以查看日志为什么?
17829 Jps
17528 TaskTracker
3、修改namenode的core-site.xml文件,把我们刚刚加入的内容删除或者注释掉,我这里选择注释掉。

4、再执行重载namenode的配置文件
[root@master ~]# hadoop/bin/hadoop dfsadmin -refreshNodes
5、最后去启动datanode上的datanode进程
[root@slave1 ~]# hadoop/bin/hadoop-daemon.sh start datanode
starting datanode, logging to /root/hadoop/bin/../logs/hadoop-root-datanode-slave1.out
[root@slave1 ~]# jps
17931 Jps
17528 TaskTracker
17878 DataNode
[root@slave1 ~]# jps         ====>正常了!
17528 TaskTracker
17878 DataNode
17953 Jps
有问题的请联系我!
下一篇介绍如下添加新的datanode到hadoop集群中。

 


 
 
 
目录
相关文章
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
184 6
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
80 4
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
38 3
|
2月前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
60 3
|
2月前
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
69 1
|
2月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
45 1
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
49 1
|
2月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
52 1
|
2月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
52 0
|
2月前
|
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
103 0