如何在没有 EMR 的情况下使用经 EMRFS S3 优化的提交程序?

How to use EMRFS S3-optimized committer without EMR?

我想在没有 EMR 集群的情况下在本地使用 EMRFS S3 优化的提交程序。 我设置了 "fs.s3a.impl" = "com.amazon.ws.emr.hadoop.fs.EmrFileSystem" 而不是 "org.apache.hadoop.fs.s3a.S3AFileSystem" 并引发了以下异常:

java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.amazon.ws.emr.hadoop.fs.EmrFileSystem not found

尝试使用 Maven 中的以下包但没有成功:

抱歉,在 EMR 之外无法使用 EMRFS,包括 S3 优化的提交程序。

EMRFS 不是开源包,Maven Central 中也没有可用的库。这就是当您尝试添加 aws-java-sdk-emr 作为依赖项时找不到 class 的原因;该软件包仅适用于与 EMR 服务交互时使用的 AWS Java SDK 客户端软件包(例如,创建集群)。