Skip to content

HADOOP-19399. S3A: support CRT client. #7443

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: trunk
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions hadoop-project/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@
<surefire.fork.timeout>900</surefire.fork.timeout>
<aws-java-sdk.version>1.12.720</aws-java-sdk.version>
<aws-java-sdk-v2.version>2.29.52</aws-java-sdk-v2.version>
<aws-crt-client.version>0.33.3</aws-crt-client.version>
<amazon-s3-encryption-client-java.version>3.1.1</amazon-s3-encryption-client-java.version>
<amazon-s3-analyticsaccelerator-s3.version>1.0.0</amazon-s3-analyticsaccelerator-s3.version>
<aws.eventstream.version>1.0.1</aws.eventstream.version>
Expand Down Expand Up @@ -1108,6 +1109,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>software.amazon.awssdk.crt</groupId>
<artifactId>aws-crt</artifactId>
<version>${aws-crt-client.version}</version>
</dependency>
<dependency>
<groupId>software.amazon.encryption.s3</groupId>
<artifactId>amazon-s3-encryption-client-java</artifactId>
Expand Down
20 changes: 20 additions & 0 deletions hadoop-tools/hadoop-aws/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,8 @@
<fs.s3a.scale.test.timeout>${fs.s3a.scale.test.timeout}</fs.s3a.scale.test.timeout>
<!-- Stream Type -->
<fs.s3a.input.stream.type>${stream}</fs.s3a.input.stream.type>
<!-- S3 CRT Client -->
<fs.s3a.crt.enabled>${fs.s3a.crt.enabled}</fs.s3a.crt.enabled>
</systemPropertyVariables>
</configuration>
</plugin>
Expand Down Expand Up @@ -324,6 +326,19 @@
</properties>
</profile>

<!-- Use the S3 CRT client -->
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this doesn't seem to be working btw, ran mvn clean verify -Dit.test=ITestAwsSdkWorkarounds -Dtest=none -Pcrt as I expect ITestAwsSdkWorkarounds to fail when using CRT, but it still passes. Need to look

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ITestAwsSdkWorkarounds stops looking for the error text with the sdk update patch

<profile>
<id>crt</id>
<activation>
<property>
<name>crt</name>
</property>
</activation>
<properties>
<fs.s3a.crt.enabled>true</fs.s3a.crt.enabled>
</properties>
</profile>

</profiles>

<build>
Expand Down Expand Up @@ -479,6 +494,11 @@
<artifactId>bundle</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>software.amazon.awssdk.crt</groupId>
<artifactId>aws-crt</artifactId>
<scope>compile</scope>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

provided, unless it really is to be shipped

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets leave at provided, but docs to indicate this can be left out if the option is disabled

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you mean leave at compile ? or should I move to provided?

Also just to confirm, only difference is if it's provided it won't get included in the final release tar, and anyone who wants to use it has to put the jar there?

</dependency>
<dependency>
<groupId>software.amazon.encryption.s3</groupId>
<artifactId>amazon-s3-encryption-client-java</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1860,7 +1860,6 @@ private Constants() {
*/
public static final String S3A_IO_RATE_LIMIT = "fs.s3a.io.rate.limit";


/**
* Prefix to configure Analytics Accelerator Library.
* Value: {@value}.
Expand All @@ -1875,4 +1874,16 @@ private Constants() {
* AWS S3 PutObject API Documentation</a>
*/
public static final String IF_NONE_MATCH_STAR = "*";

/**
* Flag to enable the CRT client. Value {@value}.
*/
public static final String CRT_CLIENT_ENABLED = "fs.s3a.crt.enabled";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you export this in the filesystem hasPathCapability, and add to InternalContants.S3A_DYNAMIC_CAPABILITIES , for bucket-info and storediag. thanks.


/**
* Default value for {@link #DEFAULT_CRT_ENABLED}.
* Value: {@value}.
*/
public static final boolean DEFAULT_CRT_ENABLED = false;

}
Loading