Skip to content

Commit 81e533d

Browse files
authored
HADOOP-16080. hadoop-aws does not work with hadoop-client-api. Contributed by Chao Sun (#2522)
1 parent 1a63df8 commit 81e533d

File tree

13 files changed

+60
-48
lines changed

13 files changed

+60
-48
lines changed

hadoop-cloud-storage-project/hadoop-cos/src/main/java/org/apache/hadoop/fs/cosn/CosNFileSystem.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
import java.util.HashMap;
2929
import java.util.Set;
3030
import java.util.TreeSet;
31+
import java.util.concurrent.ExecutorService;
3132
import java.util.concurrent.TimeUnit;
3233

3334
import org.slf4j.Logger;
3435
import org.slf4j.LoggerFactory;
35-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
3636

3737
import org.apache.hadoop.classification.InterfaceAudience;
3838
import org.apache.hadoop.classification.InterfaceStability;
@@ -71,8 +71,8 @@ public class CosNFileSystem extends FileSystem {
7171
private String owner = "Unknown";
7272
private String group = "Unknown";
7373

74-
private ListeningExecutorService boundedIOThreadPool;
75-
private ListeningExecutorService boundedCopyThreadPool;
74+
private ExecutorService boundedIOThreadPool;
75+
private ExecutorService boundedCopyThreadPool;
7676

7777
public CosNFileSystem() {
7878
}

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/BlockingThreadPoolExecutorService.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
import org.slf4j.Logger;
2929
import org.slf4j.LoggerFactory;
3030

31-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.MoreExecutors;
32-
3331
import org.apache.hadoop.classification.InterfaceAudience;
3432

3533
/**
@@ -105,8 +103,7 @@ public Thread newThread(Runnable r) {
105103

106104
private BlockingThreadPoolExecutorService(int permitCount,
107105
ThreadPoolExecutor eventProcessingExecutor) {
108-
super(MoreExecutors.listeningDecorator(eventProcessingExecutor),
109-
permitCount, false);
106+
super(eventProcessingExecutor, permitCount, false);
110107
this.eventProcessingExecutor = eventProcessingExecutor;
111108
}
112109

hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/SemaphoredDelegatingExecutor.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,16 @@
1818

1919
package org.apache.hadoop.util;
2020

21-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ForwardingListeningExecutorService;
21+
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ForwardingExecutorService;
2222
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.Futures;
23-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListenableFuture;
24-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
2523

2624
import org.apache.hadoop.classification.InterfaceAudience;
2725

2826
import java.util.Collection;
2927
import java.util.List;
3028
import java.util.concurrent.Callable;
3129
import java.util.concurrent.ExecutionException;
30+
import java.util.concurrent.ExecutorService;
3231
import java.util.concurrent.Future;
3332
import java.util.concurrent.Semaphore;
3433
import java.util.concurrent.TimeUnit;
@@ -49,10 +48,10 @@
4948
@SuppressWarnings("NullableProblems")
5049
@InterfaceAudience.Private
5150
public class SemaphoredDelegatingExecutor extends
52-
ForwardingListeningExecutorService {
51+
ForwardingExecutorService {
5352

5453
private final Semaphore queueingPermits;
55-
private final ListeningExecutorService executorDelegatee;
54+
private final ExecutorService executorDelegatee;
5655
private final int permitCount;
5756

5857
/**
@@ -62,7 +61,7 @@ public class SemaphoredDelegatingExecutor extends
6261
* @param fair should the semaphore be "fair"
6362
*/
6463
public SemaphoredDelegatingExecutor(
65-
ListeningExecutorService executorDelegatee,
64+
ExecutorService executorDelegatee,
6665
int permitCount,
6766
boolean fair) {
6867
this.permitCount = permitCount;
@@ -71,7 +70,7 @@ public SemaphoredDelegatingExecutor(
7170
}
7271

7372
@Override
74-
protected ListeningExecutorService delegate() {
73+
protected ExecutorService delegate() {
7574
return executorDelegatee;
7675
}
7776

@@ -102,7 +101,7 @@ public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout,
102101
}
103102

104103
@Override
105-
public <T> ListenableFuture<T> submit(Callable<T> task) {
104+
public <T> Future<T> submit(Callable<T> task) {
106105
try {
107106
queueingPermits.acquire();
108107
} catch (InterruptedException e) {
@@ -113,7 +112,7 @@ public <T> ListenableFuture<T> submit(Callable<T> task) {
113112
}
114113

115114
@Override
116-
public <T> ListenableFuture<T> submit(Runnable task, T result) {
115+
public <T> Future<T> submit(Runnable task, T result) {
117116
try {
118117
queueingPermits.acquire();
119118
} catch (InterruptedException e) {
@@ -124,7 +123,7 @@ public <T> ListenableFuture<T> submit(Runnable task, T result) {
124123
}
125124

126125
@Override
127-
public ListenableFuture<?> submit(Runnable task) {
126+
public Future<?> submit(Runnable task) {
128127
try {
129128
queueingPermits.acquire();
130129
} catch (InterruptedException e) {

hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFileSystemCaching.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.concurrent.Semaphore;
2828
import java.util.concurrent.TimeUnit;
2929

30+
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.MoreExecutors;
3031
import org.apache.hadoop.conf.Configuration;
3132
import org.apache.hadoop.security.UserGroupInformation;
3233
import org.apache.hadoop.security.token.Token;
@@ -423,9 +424,10 @@ private void createFileSystems(final FileSystem.Cache cache, final int count)
423424
// only one instance can be created at a time.
424425
URI uri = new URI("blocking://a");
425426
ListeningExecutorService pool =
426-
BlockingThreadPoolExecutorService.newInstance(count * 2, 0,
427+
MoreExecutors.listeningDecorator(
428+
BlockingThreadPoolExecutorService.newInstance(count * 2, 0,
427429
10, TimeUnit.SECONDS,
428-
"creation-threads");
430+
"creation-threads"));
429431

430432
// submit a set of requests to create an FS instance.
431433
// the semaphore will block all but one, and that will block until

hadoop-tools/hadoop-aliyun/src/main/java/org/apache/hadoop/fs/aliyun/oss/AliyunOSSFileSystem.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import java.util.concurrent.ExecutorService;
2828
import java.util.concurrent.TimeUnit;
2929

30-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
3130
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.MoreExecutors;
3231
import org.apache.commons.collections.CollectionUtils;
3332
import org.apache.commons.lang3.StringUtils;
@@ -78,8 +77,8 @@ public class AliyunOSSFileSystem extends FileSystem {
7877
private int maxKeys;
7978
private int maxReadAheadPartNumber;
8079
private int maxConcurrentCopyTasksPerDir;
81-
private ListeningExecutorService boundedThreadPool;
82-
private ListeningExecutorService boundedCopyThreadPool;
80+
private ExecutorService boundedThreadPool;
81+
private ExecutorService boundedCopyThreadPool;
8382

8483
private static final PathFilter DEFAULT_FILTER = new PathFilter() {
8584
@Override

hadoop-tools/hadoop-aws/dev-support/findbugs-exclude.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,10 @@
7474
<Bug pattern="SF_SWITCH_FALLTHROUGH"/>
7575
</Match>
7676

77+
<!-- Ignore return value from this method call -->
78+
<Match>
79+
<Class name="org.apache.hadoop.fs.s3a.impl.StoreContext"/>
80+
<Method name="submit"/>
81+
<Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
82+
</Match>
7783
</FindBugsFilter>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.util.Set;
4343
import java.util.Objects;
4444
import java.util.concurrent.CompletableFuture;
45+
import java.util.concurrent.ExecutorService;
4546
import java.util.concurrent.LinkedBlockingQueue;
4647
import java.util.concurrent.ThreadPoolExecutor;
4748
import java.util.concurrent.TimeUnit;
@@ -243,7 +244,7 @@ public class S3AFileSystem extends FileSystem implements StreamCapabilities,
243244
private long partSize;
244245
private boolean enableMultiObjectsDelete;
245246
private TransferManager transfers;
246-
private ListeningExecutorService boundedThreadPool;
247+
private ExecutorService boundedThreadPool;
247248
private ThreadPoolExecutor unboundedThreadPool;
248249
private int executorCapacity;
249250
private long multiPartThreshold;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
2929
import com.amazonaws.services.s3.model.DeleteObjectsResult;
3030
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
31+
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.MoreExecutors;;
3132
import org.slf4j.Logger;
3233
import org.slf4j.LoggerFactory;
3334

@@ -207,7 +208,8 @@ public DeleteOperation(final StoreContext context,
207208
"page size out of range: %s", pageSize);
208209
this.pageSize = pageSize;
209210
metadataStore = context.getMetadataStore();
210-
executor = context.createThrottledExecutor(1);
211+
executor = MoreExecutors.listeningDecorator(
212+
context.createThrottledExecutor(1));
211213
}
212214

213215
public long getFilesDeleted() {

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@
2323
import java.net.URI;
2424
import java.util.concurrent.Callable;
2525
import java.util.concurrent.CompletableFuture;
26+
import java.util.concurrent.ExecutorService;
2627

2728
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
2829

30+
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.MoreExecutors;
2931
import org.apache.hadoop.classification.InterfaceAudience;
3032
import org.apache.hadoop.classification.InterfaceStability;
3133
import org.apache.hadoop.conf.Configuration;
@@ -126,7 +128,7 @@ public StoreContext(
126128
final Configuration configuration,
127129
final String username,
128130
final UserGroupInformation owner,
129-
final ListeningExecutorService executor,
131+
final ExecutorService executor,
130132
final int executorCapacity,
131133
final Invoker invoker,
132134
final S3AInstrumentation instrumentation,
@@ -143,7 +145,7 @@ public StoreContext(
143145
this.configuration = configuration;
144146
this.username = username;
145147
this.owner = owner;
146-
this.executor = executor;
148+
this.executor = MoreExecutors.listeningDecorator(executor);
147149
this.executorCapacity = executorCapacity;
148150
this.invoker = invoker;
149151
this.instrumentation = instrumentation;
@@ -178,7 +180,7 @@ public String getUsername() {
178180
return username;
179181
}
180182

181-
public ListeningExecutorService getExecutor() {
183+
public ExecutorService getExecutor() {
182184
return executor;
183185
}
184186

@@ -305,7 +307,7 @@ public void incrementGauge(Statistic statistic, long count) {
305307
* @param capacity maximum capacity of this executor.
306308
* @return an executor for submitting work.
307309
*/
308-
public ListeningExecutorService createThrottledExecutor(int capacity) {
310+
public ExecutorService createThrottledExecutor(int capacity) {
309311
return new SemaphoredDelegatingExecutor(executor,
310312
capacity, true);
311313
}
@@ -315,7 +317,7 @@ public ListeningExecutorService createThrottledExecutor(int capacity) {
315317
* {@link #executorCapacity}.
316318
* @return a new executor for exclusive use by the caller.
317319
*/
318-
public ListeningExecutorService createThrottledExecutor() {
320+
public ExecutorService createThrottledExecutor() {
319321
return createThrottledExecutor(executorCapacity);
320322
}
321323

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
package org.apache.hadoop.fs.s3a.impl;
2020

2121
import java.net.URI;
22-
23-
import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
22+
import java.util.concurrent.ExecutorService;
2423

2524
import org.apache.hadoop.conf.Configuration;
2625
import org.apache.hadoop.fs.s3a.Invoker;
@@ -46,7 +45,7 @@ public class StoreContextBuilder {
4645

4746
private UserGroupInformation owner;
4847

49-
private ListeningExecutorService executor;
48+
private ExecutorService executor;
5049

5150
private int executorCapacity;
5251

@@ -96,7 +95,7 @@ public StoreContextBuilder setOwner(final UserGroupInformation ugi) {
9695
}
9796

9897
public StoreContextBuilder setExecutor(
99-
final ListeningExecutorService ex) {
98+
final ExecutorService ex) {
10099
this.executor = ex;
101100
return this;
102101
}

0 commit comments

Comments
 (0)