/** * This method will return max of block size and file size * * @param blockSize * @param fileSize * @return */ private static long getMaxOfBlockAndFileSize(long blockSize, long fileSize) { long maxSize = blockSize; if (fileSize > blockSize) { maxSize = fileSize; } // block size should be exactly divisible by 512 which is maintained by HDFS as bytes // per checksum, dfs.bytes-per-checksum=512 must divide block size long remainder = maxSize % HDFS_CHECKSUM_LENGTH; if (remainder > 0) { maxSize = maxSize + HDFS_CHECKSUM_LENGTH - remainder; } // convert to make block size more readable. String readableBlockSize = ByteUtil.convertByteToReadable(blockSize); String readableFileSize = ByteUtil.convertByteToReadable(fileSize); String readableMaxSize = ByteUtil.convertByteToReadable(maxSize); if (LOGGER.isDebugEnabled()) { LOGGER.debug( "The configured block size is " + readableBlockSize + ", the actual carbon file size is " + readableFileSize + ", choose the max value " + readableMaxSize + " as the block size on HDFS"); } return maxSize; }