apache-spark - hadoop aws 版本兼容性

标签 apache-spark hadoop amazon-s3 hive

是否有任何关于 aws java sdk、hadoop、hadoop-aws bundle、hive、spark 之间兼容的版本集的引用?

比如我知道Spark不兼容Hive 2.1.1以上的hive版本

最佳答案

您不能从 which hadoop-aws 构建的更高版本的 AWS SDK 中删除并期望 s3a 连接器工作。曾经。现在在 S3A troubleshooting docs 中写得很清楚了。

无论您遇到什么问题,更改 AWS SDK 版本都不会解决问题,只会更改您看到的堆栈跟踪。

考虑到 AWS 团队推出新 SDK 的速度,这似乎令人沮丧,但您必须了解 (a) API 经常在版本之间发生不兼容的变化(如您所见),以及 (b) 每个发布引入/移动了最终导致问题的错误。

这是 AWS SDK 更新时出现问题的 3.x 时间线。

AWS 开发工具包 JAR 的每次升级都会在某处导致问题。有时对代码进行编辑并重新编译,最常见的是:日志中充满误报消息、依赖性问题、线程怪癖等。这些事情可能需要一些时间才能浮出水面。

当你获得一个 hadoop 版本时,你看到的不仅仅是一个 aws-sdk JAR,它是根据它编译的,你会得到一个 hadoop-aws JAR,其中包含解决方法和修复该版本引入的和已识别的任何问题在 hadoop 发布发布之前至少进行 4 周的测试。

这就是为什么不应该更改 JAR,除非您计划对 s3a 客户端代码进行完整的端到端重新测试,包括负载测试。我们鼓励您这样做,hadoop 项目始终欢迎对我们的预发布代码进行更多测试,并准备好使用 Hadoop 3.1 二进制文件。但是尝试通过更改 JAR 自己来做?可悲的是,这是一种孤立的痛苦练习。

关于apache-spark - hadoop aws 版本兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49500842/

相关文章:

scala - 循环遍历 Map Spark Scala

apache-spark - 如何在执行之前更改查询计划(可能关闭优化)?

amazon-web-services - AWS EMR 引导操作作为 sudo

amazon-s3 - 如何在不解密的情况下下载加密的 s3 对象?

python - 从 Spark (pyspark) 管道内的 StringIndexer 阶段获取标签

scala - 控制配置设置 Apache Spark UTF 编码以写入为 saveAsTextFile

apache-spark - Apache Yarn - 分配比物理内存或 RAM 更多的内存

sorting - MapReduce - 如何按值排序减少输出

objective-c - mac osx 中的亚马逊 s3?

html - 如何告诉浏览器接受存储在 S3 中的带时间戳的回形针 css 文件