[06/23] hadoop git commit: HADOOP-13498. The number of multi-part upload part should not bigger than 10000. Contributed by Genmao Yu.
HADOOP-13498. The number of multi-part upload part should not bigger than 1. Contributed by Genmao Yu. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cdb77110 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cdb77110 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cdb77110 Branch: refs/heads/trunk Commit: cdb77110e77b70ed0c1125b2a6a422a8c7c28ec7 Parents: 6bb741b Author: MingfeiAuthored: Wed Aug 24 10:09:37 2016 +0800 Committer: Mingfei Committed: Wed Sep 7 11:15:48 2016 +0800 -- .../fs/aliyun/oss/AliyunOSSFileSystem.java | 9 .../fs/aliyun/oss/AliyunOSSOutputStream.java| 23 ++-- .../hadoop/fs/aliyun/oss/AliyunOSSUtils.java| 15 + .../apache/hadoop/fs/aliyun/oss/Constants.java | 4 +++- .../fs/aliyun/oss/TestOSSOutputStream.java | 19 5 files changed, 53 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdb77110/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java -- diff --git a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java index 99a60db..afe7242 100644 --- a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java +++ b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java @@ -71,7 +71,6 @@ import org.slf4j.LoggerFactory; * Aliyun OSS, used to access OSS blob system in a filesystem style. */ public class AliyunOSSFileSystem extends FileSystem { - private static final Logger LOG = LoggerFactory.getLogger(AliyunOSSFileSystem.class); private URI uri; @@ -560,18 +559,18 @@ public class AliyunOSSFileSystem extends FileSystem { * Used to create an empty file that represents an empty directory. * * @param bucket the bucket this directory belongs to - * @param objectName directory path + * @param key directory path * @return true if directory successfully created * @throws IOException */ - private boolean mkdir(final String bucket, final String objectName) + private boolean mkdir(final String bucket, final String key) throws IOException { -String dirName = objectName; +String dirName = key; ObjectMetadata dirMeta = new ObjectMetadata(); byte[] buffer = new byte[0]; ByteArrayInputStream in = new ByteArrayInputStream(buffer); dirMeta.setContentLength(0); -if (!objectName.endsWith("/")) { +if (!key.endsWith("/")) { dirName += "/"; } try { http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdb77110/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java -- diff --git a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java index 654b81d..1e16df9 100644 --- a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java +++ b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java @@ -84,6 +84,9 @@ public class AliyunOSSOutputStream extends OutputStream { partSize = conf.getLong(MULTIPART_UPLOAD_SIZE_KEY, MULTIPART_UPLOAD_SIZE_DEFAULT); +if (partSize < MIN_MULTIPART_UPLOAD_PART_SIZE) { + partSize = MIN_MULTIPART_UPLOAD_PART_SIZE; +} partSizeThreshold = conf.getLong(MIN_MULTIPART_UPLOAD_THRESHOLD_KEY, MIN_MULTIPART_UPLOAD_THRESHOLD_DEFAULT); @@ -151,6 +154,12 @@ public class AliyunOSSOutputStream extends OutputStream { private void multipartUploadObject() throws IOException { File object = tmpFile.getAbsoluteFile(); long dataLen = object.length(); +long realPartSize = AliyunOSSUtils.calculatePartSize(dataLen, partSize); +int partNum = (int)(dataLen / realPartSize); +if (dataLen % realPartSize != 0) { + partNum += 1; +} + InitiateMultipartUploadRequest initiateMultipartUploadRequest = new InitiateMultipartUploadRequest(bucketName, key); ObjectMetadata meta = new ObjectMetadata(); @@ -161,14 +170,6 @@ public class AliyunOSSOutputStream extends OutputStream { initiateMultipartUploadRequest.setObjectMetadata(meta); InitiateMultipartUploadResult initiateMultipartUploadResult =
[18/22] hadoop git commit: HADOOP-13498. The number of multi-part upload part should not bigger than 10000. Contributed by Genmao Yu.
HADOOP-13498. The number of multi-part upload part should not bigger than 1. Contributed by Genmao Yu. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/cdb77110 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/cdb77110 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/cdb77110 Branch: refs/heads/HADOOP-12756 Commit: cdb77110e77b70ed0c1125b2a6a422a8c7c28ec7 Parents: 6bb741b Author: MingfeiAuthored: Wed Aug 24 10:09:37 2016 +0800 Committer: Mingfei Committed: Wed Sep 7 11:15:48 2016 +0800 -- .../fs/aliyun/oss/AliyunOSSFileSystem.java | 9 .../fs/aliyun/oss/AliyunOSSOutputStream.java| 23 ++-- .../hadoop/fs/aliyun/oss/AliyunOSSUtils.java| 15 + .../apache/hadoop/fs/aliyun/oss/Constants.java | 4 +++- .../fs/aliyun/oss/TestOSSOutputStream.java | 19 5 files changed, 53 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdb77110/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java -- diff --git a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java index 99a60db..afe7242 100644 --- a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java +++ b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java @@ -71,7 +71,6 @@ import org.slf4j.LoggerFactory; * Aliyun OSS, used to access OSS blob system in a filesystem style. */ public class AliyunOSSFileSystem extends FileSystem { - private static final Logger LOG = LoggerFactory.getLogger(AliyunOSSFileSystem.class); private URI uri; @@ -560,18 +559,18 @@ public class AliyunOSSFileSystem extends FileSystem { * Used to create an empty file that represents an empty directory. * * @param bucket the bucket this directory belongs to - * @param objectName directory path + * @param key directory path * @return true if directory successfully created * @throws IOException */ - private boolean mkdir(final String bucket, final String objectName) + private boolean mkdir(final String bucket, final String key) throws IOException { -String dirName = objectName; +String dirName = key; ObjectMetadata dirMeta = new ObjectMetadata(); byte[] buffer = new byte[0]; ByteArrayInputStream in = new ByteArrayInputStream(buffer); dirMeta.setContentLength(0); -if (!objectName.endsWith("/")) { +if (!key.endsWith("/")) { dirName += "/"; } try { http://git-wip-us.apache.org/repos/asf/hadoop/blob/cdb77110/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java -- diff --git a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java index 654b81d..1e16df9 100644 --- a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java +++ b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java @@ -84,6 +84,9 @@ public class AliyunOSSOutputStream extends OutputStream { partSize = conf.getLong(MULTIPART_UPLOAD_SIZE_KEY, MULTIPART_UPLOAD_SIZE_DEFAULT); +if (partSize < MIN_MULTIPART_UPLOAD_PART_SIZE) { + partSize = MIN_MULTIPART_UPLOAD_PART_SIZE; +} partSizeThreshold = conf.getLong(MIN_MULTIPART_UPLOAD_THRESHOLD_KEY, MIN_MULTIPART_UPLOAD_THRESHOLD_DEFAULT); @@ -151,6 +154,12 @@ public class AliyunOSSOutputStream extends OutputStream { private void multipartUploadObject() throws IOException { File object = tmpFile.getAbsoluteFile(); long dataLen = object.length(); +long realPartSize = AliyunOSSUtils.calculatePartSize(dataLen, partSize); +int partNum = (int)(dataLen / realPartSize); +if (dataLen % realPartSize != 0) { + partNum += 1; +} + InitiateMultipartUploadRequest initiateMultipartUploadRequest = new InitiateMultipartUploadRequest(bucketName, key); ObjectMetadata meta = new ObjectMetadata(); @@ -161,14 +170,6 @@ public class AliyunOSSOutputStream extends OutputStream { initiateMultipartUploadRequest.setObjectMetadata(meta); InitiateMultipartUploadResult initiateMultipartUploadResult =
hadoop git commit: HADOOP-13498. The number of multi-part upload part should not bigger than 10000. Contributed by Genmao Yu.
Repository: hadoop Updated Branches: refs/heads/HADOOP-12756 787750d1f -> aff1841d0 HADOOP-13498. The number of multi-part upload part should not bigger than 1. Contributed by Genmao Yu. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/aff1841d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/aff1841d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/aff1841d Branch: refs/heads/HADOOP-12756 Commit: aff1841d00d444b5422e633a6c966104ef704da9 Parents: 787750d Author: MingfeiAuthored: Wed Aug 24 10:09:37 2016 +0800 Committer: Mingfei Committed: Wed Aug 24 10:09:45 2016 +0800 -- .../fs/aliyun/oss/AliyunOSSFileSystem.java | 9 .../fs/aliyun/oss/AliyunOSSOutputStream.java| 23 ++-- .../hadoop/fs/aliyun/oss/AliyunOSSUtils.java| 15 + .../apache/hadoop/fs/aliyun/oss/Constants.java | 4 +++- .../fs/aliyun/oss/TestOSSOutputStream.java | 19 5 files changed, 53 insertions(+), 17 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/aff1841d/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java -- diff --git a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java index 99a60db..afe7242 100644 --- a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java +++ b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java @@ -71,7 +71,6 @@ import org.slf4j.LoggerFactory; * Aliyun OSS, used to access OSS blob system in a filesystem style. */ public class AliyunOSSFileSystem extends FileSystem { - private static final Logger LOG = LoggerFactory.getLogger(AliyunOSSFileSystem.class); private URI uri; @@ -560,18 +559,18 @@ public class AliyunOSSFileSystem extends FileSystem { * Used to create an empty file that represents an empty directory. * * @param bucket the bucket this directory belongs to - * @param objectName directory path + * @param key directory path * @return true if directory successfully created * @throws IOException */ - private boolean mkdir(final String bucket, final String objectName) + private boolean mkdir(final String bucket, final String key) throws IOException { -String dirName = objectName; +String dirName = key; ObjectMetadata dirMeta = new ObjectMetadata(); byte[] buffer = new byte[0]; ByteArrayInputStream in = new ByteArrayInputStream(buffer); dirMeta.setContentLength(0); -if (!objectName.endsWith("/")) { +if (!key.endsWith("/")) { dirName += "/"; } try { http://git-wip-us.apache.org/repos/asf/hadoop/blob/aff1841d/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java -- diff --git a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java index 654b81d..1e16df9 100644 --- a/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java +++ b/hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSOutputStream.java @@ -84,6 +84,9 @@ public class AliyunOSSOutputStream extends OutputStream { partSize = conf.getLong(MULTIPART_UPLOAD_SIZE_KEY, MULTIPART_UPLOAD_SIZE_DEFAULT); +if (partSize < MIN_MULTIPART_UPLOAD_PART_SIZE) { + partSize = MIN_MULTIPART_UPLOAD_PART_SIZE; +} partSizeThreshold = conf.getLong(MIN_MULTIPART_UPLOAD_THRESHOLD_KEY, MIN_MULTIPART_UPLOAD_THRESHOLD_DEFAULT); @@ -151,6 +154,12 @@ public class AliyunOSSOutputStream extends OutputStream { private void multipartUploadObject() throws IOException { File object = tmpFile.getAbsoluteFile(); long dataLen = object.length(); +long realPartSize = AliyunOSSUtils.calculatePartSize(dataLen, partSize); +int partNum = (int)(dataLen / realPartSize); +if (dataLen % realPartSize != 0) { + partNum += 1; +} + InitiateMultipartUploadRequest initiateMultipartUploadRequest = new InitiateMultipartUploadRequest(bucketName, key); ObjectMetadata meta = new ObjectMetadata(); @@ -161,14 +170,6 @@ public class AliyunOSSOutputStream extends OutputStream { initiateMultipartUploadRequest.setObjectMetadata(meta);