如何解决AWS粘合FAILED,exitCode:15,用户类引发异常:java.lang.RuntimeException:未使用外部依赖项进行初始化
我正在尝试使用AWS Glue Scala脚本处理aws s3文件夹中的几个文件。在此之前,我需要检查文件数和名称。为此,我编写了一个Java类,该类具有所有操作以检查打包到jar文件中的文件和名称的数量。我已经将此胶水文件作为Glue配置中的从属jars路径给出了。 当我在本地运行此Java类时,它工作正常。但是当它用于胶水作业时,其拖延错误如下。
ERROR ApplicationMaster: User class threw exception: java.lang.RuntimeException: Not initialized
java.lang.RuntimeException: Not initialized
at com.amazonaws.services.glue.util.JobBookmark$.preCheck(JobBookmarkUtils.scala:22)
at com.amazonaws.services.glue.util.JobBookmark$.commit(JobBookmarkUtils.scala:84)
at com.amazonaws.services.glue.util.Job$.commit(Job.scala:94)
at GlueApp$.runJob(script_2020-10-04-04-10-24.scala:117)
at GlueApp$.main(script_2020-10-04-04-10-24.scala:62)
我的Java Jar文件pom.xml依赖项
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.875</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.875</version>
</dependency>
</dependencies>
Java类方法
public ArrayList<String> getFiles() {
BasicAWSCredentials credit = new BasicAWSCredentials("key","secreat");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_2)
.withCredentials(new AWSStaticCredentialsProvider(credit)).build();
ArrayList<String> records = new ArrayList<>();
ListObjectsV2Request req = new ListObjectsV2Request().withBucketName("my-inputpath")
.withPrefix("monthly/data/");
ListObjectsV2Result listing = s3Client.listObjectsV2(req);
for (S3ObjectSummary summary : listing.getObjectSummaries()) {
records.add(summary.getKey().replace("monthly/","/"));
}
return records;
}
我的胶水作业版本0.9
我不明白这是什么问题?可以在日志中找到异常后中止的作业
INFO ApplicationMaster: Final app status: FAILED,exitCode: 15,(reason: User class threw exception: java.lang.RuntimeException: Not initialized)
先谢谢了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。