hdfs 删除和新增节点
最近发现hdfs的一个问题,每当集群开启的时候,有一个节点上的可用空间就一直在减少,并且速度很快,发现是data目录下的dncp_block_verification.log.curr文件在一直变大,查了日志没有发现什么可疑的原因,只在datanode的日志上发现有几条日志如下非常可疑:
-- ::, INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetAsyncDiskService: Deleted BP--
92.168.1.50- blk_1073748736_7916 file /home/hadoop/hdfsdisk/data/current/BP--192.168.1.50-/curren
t/finalized/subdir0/subdir27/blk_1073748736
-- ::, INFO org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetAsyncDiskService: Deleted BP--
92.168.1.50- blk_1073846979_106183 file /home/hadoop/hdfsdisk/data/current/BP--192.168.1.50-/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./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 (): Name: 192.168.1.58: (slave8.spark)
Hostname: slave8.spark
Decommission Status : Decommission in progress
Configured Capacity: (836.66 GB)
DFS Used: (786.12 GB)
Non DFS Used: (44.39 GB)
DFS Remaining: (6.15 GB)
DFS Used%: 93.96%
DFS Remaining%: 0.74%
Configured Cache Capacity: ( B)
Cache Used: ( B)
Cache Remaining: ( B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers:
Last contact: Sun Nov :: CST
说明该节点已经被移除,其实应该等到在hdfs内部块移动结束之后再结束集群,但是我没有等到,直接在显示如上状态后就关闭了集群,然后将slaves中的该节点hostname删除后启动了集群,启动后hdfs又开始了移动块,但是很慢,会等很长时间,但是如果集群一直要用无法关闭集群的话,这个过程是很重要的。
2. 添加节点
添加新节点时需要在slaves配置文件中新增即将添加的节点,然后再进行集群平衡操作,如果不想进行平衡操作也可以(不推荐),这样做只是导致了集群中每个节点已占用空间大小不一致,添加节点也有两种方式,平滑添加和非平滑添加,具体操作如下:
2.1 平滑添加,需要停止namenode
1.停止namenode
2.修改slaves文件
3.启动namenode
4.执行hadoop balance命令平衡集群节点
2.2非平滑添加datanode,不需要停止namenode
1.修改slaves文件,添加需要增加的节点
2.启动datanode,hadoop-daemon.sh start datanode
3.执行hadoop balance命令平衡集群节点
执行节点平衡命令为balance命令,使用示例如下:start-balancer.sh -threshold 8,具体详细使用方法请查阅。
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 集群重新(re ...
- hadoop 集群 加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令
加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令 方式1:静态添加datanode,停止namenode方式 1.停止namenode 2.修改slaves文件,并更新到各个节点3.启动na ...
- 实验-hadoop新增节点
关于hadoop新增节点网上的说法都有些差别,自己来实践一把 1.建立一个namenode一个datanode的集群 master:192.168.126.130 slave1:192.168.126 ...
- CDH5.16.1集群新增节点
如果是全新安装集群的话,可以参考<Ubuntu 16.04上搭建CDH5.16.1集群> 下面是集群新增节点步骤: 1.已经存在一个集群,有两个节点 192.168.100.19 hado ...
- k8s节点简介、移除节点、新增节点
简介 Node是Pod真正运行的主机,可以是物理机也可以是虚拟机. Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源. 为了管理Pod,每个Node节点上 ...
- k8s系列--node(k8s节点介绍,新增节点,移除节点)
一.简介 Node是Pod真正运行的主机,可以是物理机也可以是虚拟机. Node本质上不是Kubernetes来创建的, Kubernetes只是管理Node上的资源. 为了管理Pod,每个Node节 ...
- [LeetCode] Delete Node in a Linked List 删除链表的节点
Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...
- 试验删除RAC(ORA10G)节点
1.环境概述 2.删除一个节点 本实验中以删除第二个节点为示例. 2.1删除数据库实例 在第一个节点上(存活的节点)上使用DBCA删除第二个节点的实例. 执行完以上操作可以看下crs_stat –t ...
- [CareerCup] 2.3 Delete Node in a Linked List 删除链表的节点
2.3 Implement an algorithm to delete a node in the middle of a singly linked list, given only access ...
随机推荐
- 090、Java中String类之判断两个int型整数是否相等
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- Vivado ILA观察信号和调试过程
先简单介绍一下ILA(Integrated Logic Analyzer)生成方法.这里有两种办法完成Debug Core的配置和实现. 方法一.mark_debug综合选项+Set Up Debug ...
- Anaconda下的 Jupyter Notebook 安装 多python环境
装完 Anaconda 会自带一个pyhon环境 也会自带Jupyter Notebook 可以点击开始中的Jupyter Notebook 打开 浏览器 我这里是 3.x 想要装个2.7 的 ...
- Struts2出现的问题:
HTTP 500: 在用通配符配置Method时候,action的形式固定,比如customer_*,那么只用一个Action类比如CustomerAction即可. 在配置的时候,不同的方法在同一个 ...
- Oracle性能优化小结
Oracle性能优化小结 原则一.注意where子句中的连接顺序 Oracle采用自下而上的顺序解析where子句,根据这个原理,表之间的连接必须卸载其他where条件之前,哪些可以滤掉最大数量记录的 ...
- NO27 定时任务
linux定时任务的设置 为当前用户创建cron服务 1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/a ...
- P1069 微博转发抽奖
P1069 微博转发抽奖 转跳点:
- 【题集】k倍区间(抽屉原理)
例1:http://lx.lanqiao.cn/problem.page?gpid=T444 蓝桥杯 问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, A ...
- HihoCoder第三周与POJ2406:KMP算法总结
HihoCoder第三周: 输入 第一行一个整数N,表示测试数据组数. 接下来的N*2行,每两行表示一个测试数据.在每一个测试数据中,第一行为模式串,由不超过10^4个大写字母组成,第二行为原串,由不 ...
- ROS大型工程学习(四)一键安装所有缺失的依赖!!!
在正文之前,我必须向rosdep道个歉,前面那篇常用命令行中没有它的位置,现在单独写一篇补充!! 突然发现rosdep有个惊人的功能, rosdep install --from-paths src ...