hdfs 删除和新增节点

最近发现hdfs的一个问题,每当集群开启的时候,有一个节点上的可用空间就一直在减少,并且速度很快,发现是data目录下的dncp_block_verification.log.curr文件在一直变大,查了日志没有发现什么可疑的原因,只在datanode的日志上发现有几条日志如下非常可疑:

2015-11-28 21:35:51,029 INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetAsyncDiskService: Deleted BP-1219379569-1
92.168.1.50-1445090469366 blk_1073748736_7916 file /home/hadoop/hdfsdisk/data/current/BP-1219379569-192.168.1.50-1445090469366/curren
t/finalized/subdir0/subdir27/blk_1073748736
2015-11-28 21:35:51,062 INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetAsyncDiskService: Deleted BP-1219379569-1
92.168.1.50-1445090469366 blk_1073846979_106183 file /home/hadoop/hdfsdisk/data/current/BP-1219379569-192.168.1.50-1445090469366/curr
ent/finalized/subdir1/subdir154/blk_1073846979

好像是namenode发出的删除请求,但是不知道在删除什么

由于暂时没有找出故障原因,所以打算将这个节点删除,然后将节点再添加回来,具体步骤如下:

1. 平滑删除节点

1.1 修改hdfd-site.xml文件

首先集群是开启的,然后添加代码如下:

<property>
    <name>dfs.hosts.exclude</name>
    <value>/home/hadoop/hadoop-2.6.0/etc/hadoop/excludes</value>
    <description> Names a file that contains a list of hosts that are not permitted to connect to the namenode.  The full pathnam
e of the file must be specified If the value is empty, no hosts are excluded. </description>
</property>

其中/home/hadoop/hadoop-2.6.0/etc/hadoop/excludes文件中为要删除的机器hostname,示例如下:

slave8.spark
slave9.spark

1.2 然后执行命令刷新hdfs节点:

hadoop dfsadmin  -refreshNodes更新hdfs节点状态,由于存在副本的原因,在后台会有块的移动

    1.3 运行命令查看hdfs报告

    hadoop dfsadmin -report    会显示如下状态:
Live datanodes (8):

Name: 192.168.1.58:50010 (slave8.spark)
Hostname: slave8.spark
Decommission Status : Decommission in progress
Configured Capacity: 898359930880 (836.66 GB)
DFS Used: 844093001728 (786.12 GB)
Non DFS Used: 47660601344 (44.39 GB)
DFS Remaining: 6606327808 (6.15 GB)
DFS Used%: 93.96%
DFS Remaining%: 0.74%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sun Nov 29 13:41:48 CST 2015

说明该节点已经被移除,其实应该等到在hdfs内部块移动结束之后再结束集群,但是我没有等到,直接在显示如上状态后就关闭了集群,然后将slaves中的该节点hostname删除后启动了集群,启动后hdfs又开始了移动块,但是很慢,会等很长时间,但是如果集群一直要用无法关闭集群的话,这个过程是很重要的。

2. 添加节点(未完待续)

时间: 2024-11-07 08:27:22

hdfs 删除和新增节点的相关文章

redis 集群新增节点,slots槽分配,删除节点, [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GET...

redis reshard 重新分槽(slots) https://github.com/antirez/redis/issues/5029 redis 官方已确认该bug redis 集群重新(reshard)分片故障 [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY) 错误背景描述 redis版本:4.0.1 ruby gem reids 版本

删除单链表节点,时间复杂度为O(1)

一个编程练习,删除单链表一个节点,且时间复杂度控制在O(1)内. 1.核心操作代码如下: struct ListNode { int m_data; ListNode *m_pNext; }; void DeleteNode(ListNode **pListHead, ListNode *pToBeDeleted) { if(pListHead == NULL || pToBeDeleted == NULL) return; //=================================

solr4.2增量索引之同步(修改,删除,新增)--转载

solr4.2增量索引之同步(修改,删除,新增)--转载 原文地址:http://www.jiancool.com/article/12743229775/;jsessionid=14E9B3F1BB33399799884B5C8F15DDE1  solr增量索引配置 1.在进行增量索引前,首先要弄懂几个必要的属性,以及数据库建表事项,和dataimporter.properties                    data-config.xml里面的数据   <!--  transfor

【链表】在O(1)的时间删除链表的节点

1 /** 2 * 在O(1)的时间删除链表的节点 3 * 4 * @author 5 * 6 */ 7 public class Solution { 8 9 public static void deleteNode(Node head, Node deletedNode) { 10 if (null == head || null == deletedNode) { 11 return; 12 } 13 14 if (deletedNode.next != null) { // 删除的不是

c# 注册表操作,创建,删除,修改,判断节点是否存在

用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除.键值的创建(设置值.修改),读取和 删除.判断注册表项是否存在.判断键值是否存在. 准备工作: 1:要操作注册表,我们必须要引入必要的命名空间: C#代码    using Microsoft.Win32; 在这个命名空间里面包含了许多注册表相关的类,足够我们使用了~~ 2:命名空间里面提供了一个类:RegistryKey 利用它我们可以定位到注册表最开头的分支: ClassesRoot,CurrentUser,Use

为什么要点两下才能删除一个li节点 原来是空白节点作怪

奇怪吧,下面的代码居然要点两次button才能删除一个li节点: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> </head> <body>

关于删除树中指定节点的实例分析

Tree *Delete(Tree *T,int n) { //将树中指定节点删除的函数 Tree *tmp; if(T==NULL) return NULL; if(T->element==n) { if(T->right==NULL) //如果没有右子树,即只有一个该节点儿子左子树 { //则直接删除 tmp=T; T=T->left; //用左子树节点代替父节点 free(tmp); } else //如果右子树存在 { tmp=T->right; while(tmp->

C#操作文件、文件夹(复制、删除、新增、设置只读)-技术&amp;分享

C#操作文件.文件夹(复制.删除.新增.设置只读)-技术&分享 using System; using System.IO; using System.Windows; using System.Windows.Documents; using System.Xml; namespace WorkItemCreateBussiness.HzClass { public class HzFile { /// <summary> /// 删除指定文件夹下的所有文件和子文件夹 /// <

新增节点appendChild(node)

创建元素节点:document.creatElement(TagName); 创建文本节点:document.createTextNode(text); <div id="div1"> <p id="p1">This is a paragraph.</p> <p id="p2">This is another paragraph.</p></div> //新增节点var pa