AWS EMR 上 Spark 2.1.0 的 AWS-SDK 对齐错误?
AWS-SDK alignment errors with Spark 2.1.0 on AWS EMR?
我运行在 AWS 上使用 spark 2.1.0 宁 emr-5.3.1。
当我使用 JAR (FAT JAR) 提交 spark 任务时,出现以下错误:
user class threw exception: java.lang.NoSuchMethodError:
com.amazonaws.auth.DefaultAWSCredentialsProviderChain.getInstance()Lcom/amazonaws/auth/DefaultAWSCredentialsProviderChain;
我只能猜测这是因为我使用与安装在 Spark 2.1.0 中的版本不同的 AWS-SDK 版本构建我的 jar
- EMR 的 Spark 2.1.0 上安装的正确 AWS_SDK 版本是什么?
- 有没有办法用我的 jars 强制我提交的 spark 任务 运行?
我正在 运行在最新的 EMR 映像上使用 Spark 2.1.0,POM 中具有以下依赖项:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.75</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-dataformat-cbor</artifactId>
<groupId>com.fasterxml.jackson.dataformat</groupId>
</exclusion>
</exclusions>
</dependency>
用你的罐子强制 spark 到 运行 的方法是使用范围 "compile" 而不是像我上面那样 "provided"。
顺便说一句,您可以通过 SSH 连接到 EMR 的主服务器和 运行:
sudo find / -name *aws-sdk*jar
我现在做了,看到版本是1.10.77
...Spark-submit ignores the jars submitted by the user and uses the jars
under /usr/share/aws/aws-java-sdk/ which for EMR 5.4 are of version
1.10.75.1. spark-submit has a parameter which can override the server jars with the user jars, however this can cause other issues... (StayerX)
我运行在 AWS 上使用 spark 2.1.0 宁 emr-5.3.1。
当我使用 JAR (FAT JAR) 提交 spark 任务时,出现以下错误:
user class threw exception: java.lang.NoSuchMethodError: com.amazonaws.auth.DefaultAWSCredentialsProviderChain.getInstance()Lcom/amazonaws/auth/DefaultAWSCredentialsProviderChain;
我只能猜测这是因为我使用与安装在 Spark 2.1.0 中的版本不同的 AWS-SDK 版本构建我的 jar
- EMR 的 Spark 2.1.0 上安装的正确 AWS_SDK 版本是什么?
- 有没有办法用我的 jars 强制我提交的 spark 任务 运行?
我正在 运行在最新的 EMR 映像上使用 Spark 2.1.0,POM 中具有以下依赖项:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.75</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>jackson-databind</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-dataformat-cbor</artifactId>
<groupId>com.fasterxml.jackson.dataformat</groupId>
</exclusion>
</exclusions>
</dependency>
用你的罐子强制 spark 到 运行 的方法是使用范围 "compile" 而不是像我上面那样 "provided"。
顺便说一句,您可以通过 SSH 连接到 EMR 的主服务器和 运行:
sudo find / -name *aws-sdk*jar
我现在做了,看到版本是1.10.77
...Spark-submit ignores the jars submitted by the user and uses the jars under /usr/share/aws/aws-java-sdk/ which for EMR 5.4 are of version 1.10.75.1. spark-submit has a parameter which can override the server jars with the user jars, however this can cause other issues... (StayerX)