What about setting the dfs.datanode.fsdataset.volume.choosing.policy to org.apache.hadoop.hdfs.server. datanode.fsdataset. AvailableSpaceVolumeChoosingPolicy?

Would that help?

Regards,
Brian

On 08/06/2014 05:23 PM, Adam Faris wrote:
Hadoop balancer doesn’t balance data on the local drives, it balances data 
between datanodes on the grid, so running the balancer won’t balance data on 
the local datanode.

The datanode process round-robins between data directories on local disk, so 
it’s not unexpected to see the smaller drive fill faster.  Typically people run 
the same size drives within each compute node to prevent this from happening.

You could partition the 2TB drive into four 500GB partitions.  This isn’t 
optimal as you’ll have 4 write threads pointing at a single disk but is fairly 
simple to implement.  Otherwise you’ll want to physically rebuild your 4 nodes 
so each node has equal amounts of storage.

I’d also like to suggest while restructuring your local filesystem, that the 
tasktracker/nodemanager be given it’s own partition for writes.  If both the 
tasktracker/nodemanger plus datanode process share a partition, when the 
mappers spill to disk it will cause the HDFS space to shrink and grow as the 
datanode is reporting back how much free space it has for it’s partitions.

Good luck.

On Aug 6, 2014, at 1:51 PM, Felix Chern <[email protected]> wrote:

Run the “hadoop balencer” command on the namenode. It’s is used for balancing 
skewed data.
http://hadoop.apache.org/docs/r1.0.4/commands_manual.html#balancer


On Aug 6, 2014, at 1:45 PM, Brian C. Huffman <[email protected]> 
wrote:

All,

We currently a Hadoop 2.2.0 cluster with the following characteristics:
- 4 nodes
- Each node is a datanode
- Each node has 3 physical disks for data: 2 x 500GB and 1 x 2TB disk.
- HDFS replication factor of 3

It appears that our 500GB disks are filling up first (the alternative would be 
to put 4 times the number of blocks on the 2TB disks per node).  I'm concerned 
that once the 500GB disks fill, our performance will slow down (less spindles 
being read / written at the same time per node).  Is this correct?  Is there 
anything we can do to change this behavior?

Thanks,
Brian




Reply via email to