我在 EMR 5.14 (hadoop 2.8.3) 上的 Yarn 上运行 spark 作业。
我可以使用更高版本的 hadoop-aws(例如 2.9 或 3.1)来受益于 s3a 协议(protocol)的最新优化吗?
最佳答案
无论 EMR 为您提供什么,您都需要坚持使用。他们的 s3://连接器是 AWS 开发的,可能是您最安全的选择。
FWIW,自 2.8.3 以来的 s3a 用于输入性能。与后来的版本没有太大变化,除了在 3.1 中,如果您将 fs.s3a.experimental.fadvise
保留为 normal
,它会自动从优化顺序 IO 切换到随机 IO (列数据)在第一个向后查找。如果您知道所有数据都以可搜索的压缩格式(即不是 gzip)存储为 Parquet/ORC,那么最好从一开始就将该属性设置为 random
。写入也没有加速。您在 Hadoop 2.9+ 中获得了一个相当于“一致 EMR”的一致性层,在 Hadoop 3.1 中获得了一个高性能输出提交器。但是您不能通过放入后面的 JAR 来尝试使用这些功能。它只会给你堆栈跟踪
关于apache-spark - 我应该使用哪个版本的 hadoop-aws,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51067985/