hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ravi Prakash (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-6489) DFS Used space is not correct computed on frequent append operations
Date Wed, 20 Apr 2016 20:18:25 GMT

    [ https://issues.apache.org/jira/browse/HDFS-6489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15250626#comment-15250626

Ravi Prakash commented on HDFS-6489:

Unfortunately I don't think your approach will work Weiwei! The du thread takes really long
times. On a single datanode there may be millions of files and thus the du takes a while to
I would concur with Andrew's opinion *unless* the following is happening
1. Appending to the same file multiple times without closing is causing DFS usage to jump
by block size every time. It seems [~andrew.wang] that users are reporting such behavior.
It may be worth a look
2. We are rejecting writes on the datanodes based on (possibly outdated) information from
the DU thread. If we are going to wait for the DU thread to update available space before
writing, we may be rejecting for a long time.
Please let me know if I somehow misunderstand the issue / symptoms.

> DFS Used space is not correct computed on frequent append operations
> --------------------------------------------------------------------
>                 Key: HDFS-6489
>                 URL: https://issues.apache.org/jira/browse/HDFS-6489
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: datanode
>    Affects Versions: 2.2.0, 2.7.1, 2.7.2
>            Reporter: stanley shi
>            Assignee: Weiwei Yang
>         Attachments: HDFS-6489.001.patch, HDFS-6489.002.patch, HDFS-6489.003.patch, HDFS6489.java
> The current implementation of the Datanode will increase the DFS used space on each block
write operation. This is correct in most scenario (create new file), but sometimes it will
behave in-correct(append small data to a large block).
> For example, I have a file with only one block(say, 60M). Then I try to append to it
very frequently but each time I append only 10 bytes;
> Then on each append, dfs used will be increased with the length of the block(60M), not
teh actual data length(10bytes).
> Consider in a scenario I use many clients to append concurrently to a large number of
files (1000+), assume the block size is 32M (half of the default value), then the dfs used
will be increased 1000*32M = 32G on each append to the files; but actually I only write 10K
bytes; this will cause the datanode to report in-sufficient disk space on data write.
> {quote}2014-06-04 15:27:34,719 INFO org.apache.hadoop.hdfs.server.datanode.DataNode:
opWriteBlock  BP-1649188734- received exception
org.apache.hadoop.util.DiskChecker$DiskOutOfSpaceException: Insufficient space for appending
to FinalizedReplica, blk_1073742834_45306, FINALIZED{quote}
> But the actual disk usage:
> {quote}
> [root@hdsh143 ~]# df -h
> Filesystem            Size  Used Avail Use% Mounted on
> /dev/sda3              16G  2.9G   13G  20% /
> tmpfs                 1.9G   72K  1.9G   1% /dev/shm
> /dev/sda1              97M   32M   61M  35% /boot
> {quote}

This message was sent by Atlassian JIRA

View raw message