Skip to content

Commit 1b152a4

Browse files
authored
HADOOP-19664. S3A: Analytics stream to use Java sync client. (#7909)
Contributed by: Ahmar Suhail
1 parent 7063d58 commit 1b152a4

File tree

5 files changed

+11
-12
lines changed

5 files changed

+11
-12
lines changed

hadoop-project/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@
219219
<aws-java-sdk.version>1.12.720</aws-java-sdk.version>
220220
<aws-java-sdk-v2.version>2.29.52</aws-java-sdk-v2.version>
221221
<amazon-s3-encryption-client-java.version>3.1.1</amazon-s3-encryption-client-java.version>
222-
<amazon-s3-analyticsaccelerator-s3.version>1.2.1</amazon-s3-analyticsaccelerator-s3.version>
222+
<amazon-s3-analyticsaccelerator-s3.version>1.3.0</amazon-s3-analyticsaccelerator-s3.version>
223223
<aws.eventstream.version>1.0.1</aws.eventstream.version>
224224
<hsqldb.version>2.7.1</hsqldb.version>
225225
<frontend-maven-plugin.version>1.11.2</frontend-maven-plugin.version>

hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/S3AStoreImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -993,10 +993,10 @@ public InputStreamType streamType() {
993993
private class FactoryCallbacks implements StreamFactoryCallbacks {
994994

995995
@Override
996-
public S3AsyncClient getOrCreateAsyncClient(final boolean requireCRT) throws IOException {
996+
public S3Client getOrCreateSyncClient() throws IOException {
997997
// Needs support of the CRT before the requireCRT can be used
998998
LOG.debug("Stream factory requested async client");
999-
return clientManager().getOrCreateAsyncClient();
999+
return clientManager().getOrCreateS3Client();
10001000
}
10011001

10021002
@Override

hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/streams/AnalyticsStreamFactory.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
26-
import software.amazon.s3.analyticsaccelerator.S3SdkObjectClient;
26+
2727
import software.amazon.s3.analyticsaccelerator.S3SeekableInputStreamConfiguration;
2828
import software.amazon.s3.analyticsaccelerator.S3SeekableInputStreamFactory;
29+
import software.amazon.s3.analyticsaccelerator.S3SyncSdkObjectClient;
2930
import software.amazon.s3.analyticsaccelerator.common.ConnectorConfiguration;
3031

3132
import org.apache.hadoop.conf.Configuration;
@@ -118,7 +119,7 @@ private S3SeekableInputStreamFactory getOrCreateS3SeekableInputStreamFactory()
118119

119120
private CallableRaisingIOE<S3SeekableInputStreamFactory> createS3SeekableInputStreamFactory() {
120121
return () -> new S3SeekableInputStreamFactory(
121-
new S3SdkObjectClient(callbacks().getOrCreateAsyncClient(requireCrt)),
122+
new S3SyncSdkObjectClient(callbacks().getOrCreateSyncClient()),
122123
seekableInputStreamConfiguration);
123124
}
124125

hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/impl/streams/ObjectInputStreamFactory.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import java.io.IOException;
2222

23-
import software.amazon.awssdk.services.s3.S3AsyncClient;
23+
import software.amazon.awssdk.services.s3.S3Client;
2424

2525
import org.apache.hadoop.fs.s3a.Statistic;
2626
import org.apache.hadoop.fs.StreamCapabilities;
@@ -80,12 +80,11 @@ ObjectInputStream readObject(ObjectReadParameters parameters)
8080
interface StreamFactoryCallbacks {
8181

8282
/**
83-
* Get the Async S3Client, raising a failure to create as an IOException.
84-
* @param requireCRT is the CRT required.
83+
* Get the Sync S3Client, raising a failure to create as an IOException.
8584
* @return the Async S3 client
8685
* @throws IOException failure to create the client.
8786
*/
88-
S3AsyncClient getOrCreateAsyncClient(boolean requireCRT) throws IOException;
87+
S3Client getOrCreateSyncClient() throws IOException;
8988

9089
void incrementFactoryStatistic(Statistic statistic);
9190
}

hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/impl/streams/TestStreamFactories.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323

2424
import org.apache.hadoop.fs.s3a.Statistic;
2525
import org.junit.jupiter.api.Test;
26-
import software.amazon.awssdk.services.s3.S3AsyncClient;
2726

2827
import org.apache.hadoop.conf.Configuration;
2928
import org.apache.hadoop.fs.s3a.VectoredIOContext;
3029
import org.apache.hadoop.fs.s3a.prefetch.PrefetchingInputStreamFactory;
3130
import org.apache.hadoop.test.AbstractHadoopTestBase;
31+
import software.amazon.awssdk.services.s3.S3Client;
3232

3333
import static org.apache.hadoop.fs.s3a.Constants.INPUT_STREAM_CUSTOM_FACTORY;
3434
import static org.apache.hadoop.fs.s3a.Constants.INPUT_STREAM_TYPE;
@@ -329,9 +329,8 @@ public FactoryFailsToInstantiate() {
329329
* Callbacks from {@link ObjectInputStreamFactory} instances.
330330
*/
331331
private static final class Callbacks implements ObjectInputStreamFactory.StreamFactoryCallbacks {
332-
333332
@Override
334-
public S3AsyncClient getOrCreateAsyncClient(final boolean requireCRT) throws IOException {
333+
public S3Client getOrCreateSyncClient() throws IOException {
335334
throw new UnsupportedOperationException("not implemented");
336335
}
337336

0 commit comments

Comments
 (0)