amazon-web-services - 从 s3a 读取文件以及 AWS Athena SDK (1.11+)

标签 amazon-web-services apache-spark hadoop amazon-s3 amazon-athena

我正在编写一个 spark/scala 程序,它在 athena 上提交查询(使用 aws-java-sdk-athena:1.11.420 )并等待查询完成。查询完成后,我的 spark 程序使用 s3a 直接从 S3 存储桶中读取数据。协议(protocol)(查询的输出位置)使用 spark 的 sparkSession.read.csv()功能。

为了读取 CSV 文件,我需要使用 org.apache.hadoop.hadoop-aws:1.8+org.apache.hadoop.hadoop-client:1.8+ .这两个库都是使用 AWS 开发工具包版本 1.10.6 构建的。 .但是,AWS athena 没有该版本的任何开发工具包。他们拥有的最旧版本是1.11+ .

我该如何解决冲突?我需要使用最新版本的 AWS SDK 才能访问 athena,但是 hadoop-aws把我推回旧版本?
hadoop-aws 还有其他依赖版本吗?使用 1.11+ AWS 开发工具包?如果是这样,哪些版本适合我?如果没有,我还有什么其他选择?

最佳答案

我发现我可以使用 hadoop-aws:3.1+附带aws-java-sdk-bundle:1.11+ .此 AWS 开发工具包捆绑了 Athena。

我虽然仍然需要使用 hadoop-commons:3.1+ 运行 spark图书馆。我拥有的 spark 集群运行 2.8 版本的库。

由于我的 spark 集群运行 2.8,spark-submit 作业失败,而 jar ( java -jar myjar.jar ) 的正常执行工作正常。这是因为 Spark 正在用捆绑的版本替换我提供的 hadoop 库。

关于amazon-web-services - 从 s3a 读取文件以及 AWS Athena SDK (1.11+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861125/

相关文章:

scala - 基于最大日期记录的 Spark 过滤器

scala - 线程 “main”中的Apache Spark异常java.lang.NoClassDefFoundError : scala/collection/GenTraversableOnce$class

amazon-web-services - 在内联 python 中使用 cfnresponse 创建自定义支持的云形成资源时出错

amazon-web-services - 使用 CloudFormation 模板中的现有角色

sql - SparkSQL : conditional sum on range of dates

Hadoop NameNode 启动失败,错误 : FSNamesystem initialization failed. java.io.FileNotFoundException

java - jdbc 到配置单元的连接被拒绝

apache-spark - Sqoop 可以用于在 IMPORT 上执行联接吗?

同一 AWS 实例上的 Django Rest Framework 和 Angular 应用程序

amazon-web-services - 当 API 网关调用达到其 29 秒超时并返回 504 错误时触发 AWS 警报