【发布时间】:2018-03-26 21:22:50
【问题描述】:
关于 aws java sdk、hadoop、hadoop-aws bundle、hive、spark 之间兼容哪些版本集有任何参考吗?
例如,我知道 Spark 与 Hive 2.1.1 以上的 Hive 版本不兼容
【问题讨论】:
标签: apache-spark hadoop amazon-s3 hive
关于 aws java sdk、hadoop、hadoop-aws bundle、hive、spark 之间兼容哪些版本集有任何参考吗?
例如,我知道 Spark 与 Hive 2.1.1 以上的 Hive 版本不兼容
【问题讨论】:
标签: apache-spark hadoop amazon-s3 hive
您不能从构建 hadoop-aws 的内容中插入更高版本的 AWS 开发工具包,并期望 s3a 连接器能够正常工作。曾经。这在S3A troubleshooting docs
中已经写得很清楚了无论您遇到什么问题,更改 AWS 开发工具包版本都不会解决问题,只会更改您看到的堆栈跟踪。
考虑到 AWS 团队推出新 SDK 的速度,这似乎令人沮丧,但您必须了解 (a) API 经常在版本之间不兼容地更改(如您所见),以及 (b)发布引入/移动了最终导致问题的错误。
以下是 AWS 开发工具包更新时中断的 3.x 时间线。
AWS 开发工具包 JAR 的每次升级都会在某处引起问题。有时会编辑代码并重新编译,最常见的情况是:日志充满误报消息、依赖问题、线程怪癖等。这些事情可能需要一段时间才能浮出水面。
当您获得一个 hadoop 版本时,您所看到的不仅仅是一个针对它进行编译的 aws-sdk JAR,您还获得了一个 hadoop-aws JAR,其中包含针对该版本引入和识别的任何问题的变通方法和修复在 hadoop 发布前至少 4 周的测试。
这就是为什么,不,您不应该更改 JAR,除非您计划对 s3a 客户端代码进行完整的端到端重新测试,包括负载测试。我们鼓励您这样做,hadoop 项目总是欢迎对我们的预发布代码进行更多测试,并准备好使用 Hadoop 3.1 二进制文件。但是尝试通过更改 JAR 来自己做呢?可悲的是,这是一种孤立的疼痛练习。
【讨论】: