apache-spark - 我应该使用哪个版本的 hadoop-aws

标签 apache-spark hadoop amazon-s3 amazon-emr

我在 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/

相关文章:

scala - Spark中的FP增长模型

apache-spark - Tensorflow/深度学习可以用于梯度提升树、逻辑回归吗?

amazon-web-services - Spark/Hadoop 不支持 AWS S3 上的 SSE-KMS 加密

hadoop - manager.SqlManager:执行语句时出错:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

java - 如何通过修改org.apache.hadoop.hbase.mapreduce.RowCounter处理hbase中的海量数据?

postgresql - 将数据从 S3 复制到 Redshift

scala - 在 Spark API 中向数据框 RDD 添加新列有多少种方法?

java - 如何在不删除配置单元表的情况下基于 DataFrame 从 SparkSQL 更改表,如删除/添加列?

python - 使用 Python 将标准 JSON 文件转换为 json-serde 格式并上传到 Amazon Athena 的 AWS S3 存储桶(Presto、Hive)

ruby-on-rails - 使用回形针上传 mp3 时管道损坏