if there are only dfs files under /data and /data2,it will be ok when
filled up.
unless some other files like mapreduce teme folder or even a namenode
image,it may broken the cluster when disk was filled up(as namenode can not
do a checkpoint or mapreduce framework can not continue as no disk space
for intermediate files).

1) bring down HDFS and just manually move ~50% of the
/data/dfs/dn/current/subdir* directories over to /data2 and then bring HDFS
back up
moving around the files may work,but I not sure.
the datanode MAY report it back to namenode the updated location.

But
2) bring a data node down one at a time, clean our /data and /data2, put
the node back into rotation and let the balancer distribute replication
data back onto the node and since it will round robin to both (now empty)
disks, I will wind up with a nicely balanced data node. Repeat this process
for the remaining nodes.
this works fine.

Tips:
  Your may config the *dfs.datanode.du.reserved* to setup volume quota for
each datanode volume.but take care of the formula hadoop used to calculate
the free disk space.

On Sat, Mar 17, 2012 at 8:57 PM, Tom Wilberding <t...@wilberding.com> wrote:

> Hi there,
>
> Our data nodes all have 2 disks, one which is nearly full and one which is
> nearly empty:
>
> $ df -h
> Filesystem            Size  Used Avail Use% Mounted on
> /dev/mapper/VolGroup00-LogVol00
>                      120G   11G  104G   9% /
> /dev/cciss/c0d0p1      99M   35M   60M  37% /boot
> tmpfs                 7.9G     0  7.9G   0% /dev/shm
> /dev/cciss/c0d1       1.8T  1.7T  103G  95% /data
> /dev/cciss/c0d2       1.8T   76G  1.8T   5% /data2
>
>
> Reading through the docs and mailing list archives, my understanding is
> that HDFS will continue to round robin to both disks until /data is
> completely full and then only write to /data2. Is this correct? Does it
> really write until the disk is 100% full (or as close to full as possible?)
>
> Ignoring performance of this situation and the monitoring hassles of
> having full disks, I just want to be sure that nothing bad is going to
> happen over the next couple of days as we fill up that /data partition.
>
> I understand that my best two options to rebalance each data node would be
> to either:
> 1) bring down HDFS and just manually move ~50% of the
> /data/dfs/dn/current/subdir* directories over to /data2 and then bring HDFS
> back up
> 2) bring a data node down one at a time, clean our /data and /data2, put
> the node back into rotation and let the balancer distribute replication
> data back onto the node and since it will round robin to both (now empty)
> disks, I will wind up with a nicely balanced data node. Repeat this process
> for the remaining nodes.
>
> I'm relatively new to HDFS, so can someone please confirm whether what I'm
> saying is correct? Any tips, tricks or things to watch out for would also
> be greatly appreciated.
>
> Thanks,
> Tom

Reply via email to