繁体   English   中英

hadoop aws 版本兼容性

[英]hadoop aws versions compatibility

Is there any reference as to what sets of versions are compatible between aws java sdk, hadoop, hadoop-aws bundle, hive, spark?

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

您不能从构建hadoop-aws的版本中引入更高版本的AWS开发工具包,并期望s3a连接器能够正常工作。 永远。 现在,在S3A故障排除文档中已经清楚地写下了这一点

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

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

以下是AWS SDK更新中出现的3.x时间轴。

AWS SDK JAR的每次升级都会导致某个问题。 有时编辑代码并重新编译,最常见的是:日志填满虚假警报消息,依赖性问题,线程怪癖等等。这些事情需要花费时间才能浮出水面。

当你得到一个hadoop版本时你所看到的不仅仅是一个被编译的aws-sdk JAR,你得到一个hadoop-aws JAR,其中包含解决方案和修复程序,用于解决已经引入的任何问题以及最小的问题。在hadoop发布之前进行了4周的测试。

这就是为什么,不,你不应该更改JAR,除非你打算对s3a客户端代码进行完整的端到端重新测试,包括负载测试。 我们鼓励您这样做,hadoop项目总是欢迎对我们的预发行代码进行更多测试,并准备好使用Hadoop 3.1二进制文件。 但是试图通过改变JAR来自己做? 可悲的是,一个孤立的运动在痛苦中。

在 Hadoop 文档中,声明通过将hadoop-aws JAR 添加到构建依赖项中; 它将引入兼容的aws-sdk JAR。

因此,我使用这些依赖项创建了一个虚拟 Maven 项目以下载兼容版本

<properties>  
 <!-- Your exact Hadoop version here-->   
 <hadoop.version>3.3.1</hadoop.version>
</properties>

<dependencies>
   <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>${hadoop.version}</version>
   </dependency>
   <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-aws</artifactId>
    <version>${hadoop.version}</version>
   </dependency>
</dependencies>

然后,我检查了我的依赖版本,在我的项目中使用它并且它工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM