http://wiki.apache.org/hadoop/FAQ#On_an_individual_data_node.2C_how_do_you_balance_the_blocks_on_the_disk.3F

关于这个问题,Hadoop暂时未提供自动解决的方案,已经提上日程,jira上有记录。

hadoop wiki上提到了手动处理的解决方案。如上链接如示。

问题描述,一个datanode节点的datanode.dir会配置多个磁盘或目录,而如果因某些原因,如坏盘更换或磁盘选择策略的问题,

造成某一些磁盘目录使用很多,而某些或某个盘的使用率很低,这个时候可以手动进行处理。

1。先把这个datanode节点的datanode进程停掉,这样就不写入数据,才可以进行下一步操作。

2。例如从/data1/ 把block move到/data2/ 则尽可能保证目录结构一致,wiki中提到新版本中子目录不一致也不行。

mv的时候,要注意权限,不要使用root用户mv完之后,不改权限,这也会造成无法读取的问题。

我自己测试的环境cdh5.0.2 hadoop2.3

data.dir /hdp2/dfs/data ,新添加一个路径,/hdp2/dfs/data2

因为data2目录是空的,如果启动datanode 会对该目录进行初始化,如创建 version文件等。

我直接在data2中创建了数据池等目录到finalized ,然后把data下面第一层的block和meta挪了过来,没有把subdir目录挪过来。

我直接启动了datanode进程后,发现我挪过来的数据被删除了(为什么)

不过还好,副制因子是2,这些数据会同步过来。我停掉datanode进程,把subdir10(这里面有数据)直接mv到/data2相应的目录下,

再次启动datanode进程,webui上检查发现,block是被发现了。

为安全起见,在生产环境中操作,一定要对数据进行一下备份,或者是先上传一个大文件,然后针对这个文件的blocks进行测试后再大规模处理。

手动处理datanode磁盘间使用不均的问题的更多相关文章

  1. Hadoop datanode 磁盘自动化处理

    新集群的 datanode 磁盘自动化处理工具开工在即.

  2. Hadoop集群datanode磁盘不均衡的解决方案

    一.引言: Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点,节点与节点之间磁盘大小不一样等等.当hdfs出现不平衡状况的时候,将引发很多问题,比 ...

  3. Hadoop集群datanode磁盘不均衡的解决方案【转】

    一.引言: Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点,节点与节点之间磁盘大小不一样等等.当hdfs出现不平衡状况的时候,将引发很多问题,比 ...

  4. HDFS DATANODE 磁盘容量的最小值

    HDFS的DATANODE的剩余空间具体要到多大?关于这个问题,下面记录下对这个问题的调查 昨天,讨论群里面给出了一个异常: op@odbtest bin]$ hadoop fs -put ../tm ...

  5. 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)

    0. 背景: inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻 ...

  6. 攻城狮在路上(叁)Linux(十七)--- linux磁盘与文件管理概述

    一.复习知识点: 1.扇区是最小的物理存储单位,大小为512bytes. 2.扇区组成一个圆,成为柱面,柱面是分区的最小单位. 3.第一个扇区很重要,因为包含了MBR(446字节)和分区表(64字节) ...

  7. 第八章、Linux 磁盘与文件系统管理

    认识 EXT2 文件系统 Linux最传统的磁盘文件系统(filesystem)使用的是EXT2这个啦!所以要了解文件系统就得要由认识EXT2开始! 而文件系统是创建在硬盘上面的,因此我们得了解硬盘的 ...

  8. bigdata_hadoop_namenode手动重启错误解决分析

    现象: 集群大面积异常,通过ambari启动不起来.逐一排查,顺序 hdfs -> mapreduce->yarn->hive -other hdfs下发现namenode ,dat ...

  9. Linux磁盘分区/格式化/挂载(树莓派3挂载硬盘)

    [前言] 本文将要讲解的功能为Linux环境下对磁盘进行操作.包括分区.格式化.挂载外接移动存储设备等. 该文的写作背景为本人的树莓派需要外接一个固态硬盘作为存储设备,因此,便开始了一系列的折腾. [ ...

随机推荐

  1. jquery实现更多内容效果

    体验效果:http://hovertree.com/texiao/jquery/33/ 写个“更多内容的展开/收起”的js 代码如下: <!DOCTYPE html> <html&g ...

  2. Python获取中国证券报最新资讯

    # -*- coding: utf-8 -*- import urllib from bs4 import BeautifulSoup from time import time from time ...

  3. easyui datagrid 动态操作editor 的方法

    easyui本身是不提供这么细节的功能的,需要我们自己拓展下: 在easyui.min.js中扩展: $.extend($.fn.datagrid.methods, { addEditor : fun ...

  4. 变通实现微服务的per request以提高IO效率(三)

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  5. Disruptor-net 3.3.0

    Disruptor 介绍 Disruptor 是LMX开源出来的java编写的一个并发消息处理器,在队列中一边生产者放入消息,另外一边消费者并行取出处理,其核心是根据现代CPU硬件缓存特点发明不同于通 ...

  6. CSS3过渡详解-遁地龙卷风

    第二版 0.环境准备 (1)过渡需要浏览器的支持,使用这些属性要加上浏览器厂商的前缀,我用的chrome49已经不需要前缀了, -o- Opera -webkit- Safari.Chrome -mo ...

  7. IOS开发基础知识--碎片36

    1:tabBarController跳转到另一个一级页面 当我们用tabBarController时,若已经到其中一个TabBar的子页,又要跳转到某一个一级的页面时,可以这样写 //这样就可以避免跳 ...

  8. Android Studio 2.2.2导入Eclipse中创建的项目

    最近随视频教程学习Android,原本都是用Adt写Android程序,中途教程换成了Android Studio,于是我自己下了android studio 2.2.2安装好,并下载好sdk,也跟着 ...

  9. openfire安装

    服务器第一次能够开启,但不久就断开,再连接就会闪退,命令行更改Java路径后即可 http://www.jianshu.com/p/5d88fe201c71 开启服务器后,导入数据库脚本,创建几个测试 ...

  10. 深入浅出React Native 2: 我的第一个应用

    这是深入浅出React Native教程的第二篇文章. 1. 环境配置 React Native环境配好之后,就可以开始创建我们的第一个App啦. 打开控制台,输入 react-native init ...