[
https://issues.apache.org/jira/browse/HDFS-6641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14061671#comment-14061671
]
Chris Nauroth commented on HDFS-6641:
-------------------------------------
The {{concat}} method takes 2 arguments. The first is a single {{Path}}, and
this is called the target. The second is an array of multiple {{Path}}
instances, and these are called the sources. All of the sources will get
appended to the target. The {{Path}} referred to as target must have all of
its blocks full. Once again, this is intended to maintain the invariant that
an HDFS file has a consistent block size, and all blocks are fully populated
except the last one.
> [ HDFS- File Concat ] Concat will fail when Src/target file is having one
> block which is not full
> --------------------------------------------------------------------------------------------------
>
> Key: HDFS-6641
> URL: https://issues.apache.org/jira/browse/HDFS-6641
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: namenode
> Affects Versions: 2.4.1
> Reporter: Brahma Reddy Battula
>
> sually we can't ensure lastblock alwaysfull...please let me know purpose of
> following check..
> long blockSize = trgInode.getPreferredBlockSize();
> // check the end block to be full
> final BlockInfo last = trgInode.getLastBlock();
> if(blockSize != last.getNumBytes()) {
> throw new HadoopIllegalArgumentException("The last block in " + target
> + " is not full; last block size = " + last.getNumBytes()
> + " but file block size = " + blockSize);
> }
> If it is issue, I'll file jira.
> Following is the trace..
> exception in thread "main"
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.HadoopIllegalArgumentException):
> The last block in /Test.txt is not full; last block size = 14 but file block
> size = 134217728
> at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.concatInternal(FSNamesystem.java:1887)
> at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.concatInt(FSNamesystem.java:1833)
> at
> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.concat(FSNamesystem.java:1795)
> at
> org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.concat(NameNodeRpcServer.java:704)
> at
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.concat(ClientNamenodeProtocolServerSideTranslatorPB.java:512)
> at
> org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
--
This message was sent by Atlassian JIRA
(v6.2#6252)