我正在嘗試使用魔術輸出提交器,但無論我做什么,我都會得到默認的輸出提交器。
INFO FileOutputCommitter: File Output Committer Algorithm version is 10
22/03/08 01:13:06 ERROR Application: Only 1 or 2 algorithm version is supported
這就是我根據Hadoop docs知道我正在使用它的方式。我究竟做錯了什么?這是我的相關配置(使用SparkConf()),我嘗試了很多其他配置。
.set("spark.hadoop.fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
.set("spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version", "10")
.set("spark.hadoop.fs.s3a.committer.magic.enabled", "true")
.set("spark.hadoop.mapreduce.outputcommitter.factory.scheme.s3a", "org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory")
.set("fs.s3a.committer.name", "magic")
.set("spark.sql.sources.commitProtocolClass", "org.apache.spark.internal.io.cloud.PathOutputCommitProtocol")
.set("spark.sql.parquet.output.committer.class", "org.apache.spark.internal.io.cloud.BindingParquetOutputCommitter")
我沒有與此相關的任何其他配置。不在代碼或conf檔案(Hadoop或Spark)中,也許我應該?我要寫的路徑以 s3:// 開頭。使用 Hadoop 3.2.1、Spark 3.0.0 和 EMR 6.1.1
uj5u.com熱心網友回復:
所以經過大量閱讀 stevel評論,我找到了我需要的東西。我正在使用內置 EMR 并默認使用的優化輸出提交器。我一開始沒有使用它的原因是 AWS 優化的提交器只有在它可以激活的時候才會被激活。在 EMR 6.4.0 之前,它僅適用于某些條件,但從 6.4.0 開始,它適用于每種寫入型別 txt csv parquet 以及 rdd 資料報和資料集。所以我只需要更新到 EMR 6.4.0。
執行時間提高了 50-60%。
優化的提交者要求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/440571.html
