cannot create EMRclient - Sdkclientexception

Viewed 722

ive been trying to create a cluster using the Emrclient

EmrClient emrClient = EmrClient.builder().
        region(Region.US_EAST_1).
        credentialsProvider(EnvironmentVariableCredentialsProvider.create()).
        build();

when i try to run the code, i get an SDKexception:

Exception in thread "main" software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder.
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:98)
    at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.lambda$buildWithDefaults$1(DefaultSdkHttpClientBuilder.java:49)
    at java.base/java.util.Optional.orElseThrow(Optional.java:408)
    at software.amazon.awssdk.core.internal.http.loader.DefaultSdkHttpClientBuilder.buildWithDefaults(DefaultSdkHttpClientBuilder.java:43)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.lambda$resolveSyncHttpClient$5(SdkDefaultClientBuilder.java:269)
    at java.base/java.util.Optional.orElseGet(Optional.java:369)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.resolveSyncHttpClient(SdkDefaultClientBuilder.java:269)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.finalizeSyncConfiguration(SdkDefaultClientBuilder.java:220)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:153)
    at software.amazon.awssdk.services.emr.DefaultEmrClientBuilder.buildClient(DefaultEmrClientBuilder.java:27)
    at software.amazon.awssdk.services.emr.DefaultEmrClientBuilder.buildClient(DefaultEmrClientBuilder.java:22)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:124)
    at task2.App.main(App.java:27)

after searching online in the aws docs, i found that to create the EMRclient we need to make the builder look like this:

EmrClient emrClient = EmrClient.builder().
        region(Region.US_EAST_1).
        credentialsProvider(EnvironmentVariableCredentialsProvider.create()).
        httpClient(ApacheHttpClient.builder().build()).
        build();

but no matter what i do, my IDE doesnt recognize the class ApacheHttpClient, ive tried to import : import software.amazon.awssdk.http.apache.ApacheHttpClient; but it doesnt recognize it even though i added it to my POM:

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>emr</artifactId>
    <version>2.13.23</version>
</dependency>
  <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>ec2</artifactId>
      <version>2.13.23</version>
  </dependency>
  <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>s3</artifactId>
      <version>2.13.23</version>
  </dependency>
  <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>apache-client</artifactId>
      <version>2.13.23</version>
      <scope>test</scope>
  </dependency>
<!-- https://mvnrepository.com/artifact/software.amazon.awssdk/apache-client -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>apache-client</artifactId>
    <version>2.13.23</version>
    <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpcore</artifactId>
  <version>4.4</version>
</dependency>

was wondering if anyone has encountered this and was able to fix it? thanks in advance

0 Answers
Related