2016-09-22 27 views
11

Geçtiğimiz günlerde "EMR on HDFS" -> "S3 üzerinde EMR" (tutarlı görünüm etkinleştirilmiş EMRFS) ve Spark 'SaveAsTable' (parke biçimi) yazı tiplerinin S3'e göre daha düşük olduğunu gördük. DirectParquetOutputCommitter - [1] w/Spark 1.6 kullanarak bir geçici çözüm bulduk. S3 yavaşlık içinSpark 2.0 'DirectParquetOutputCommitter', onsuz nasıl yaşayacağımı kabul etmiyor?

Sebep - Biz sözde Parke vergisiz ödemek zorunda [2] S3 yeniden adlandırma işlemi

Ayrıca çok pahalı olduğu varsayılan çıkış committer geçici tabloya yazar ve daha sonra bunu yeniden adlandırır nerede “DirectParquetOutputCommitter” kullanmanın riskini anlıyoruz, bu da veri bozulmalarının spekülatif görevler tarafından etkinleştirilmesini sağlıyor.

Şimdi w/Spark 2.0 ile bu sınıf kullanımdan kaldırıldı ve Spark 2.0'a yükseldiğimizde ~ 4x daha yavaş yazma yapamayacağımız için masanın üzerinde hangi seçeneklerin olduğunu merak ediyoruz. Herhangi bir Düşünceler/öneri/tavsiye çok takdir edilecektir. HDF'ler üzerine kaydedin ve sonra (bu S3 bizim Hive meta-mağaza noktaları olarak aklı başında bir şekilde nasıl yapılabileceği üzerinde herhangi bir düşünce?)

s3DistCp yoluyla S3 kopyalamak - biz düşünebildiğim

Bir geçici çözüm

NetFlix bunu düzeltmiş gibi görünüyor - [3], ne zaman kaynak açmayı planladıkları konusunda bir fikir var mı?

Teşekkürler.

[1] - https://github.com/apache/spark/blob/21d5ca128bf3afd5c2d4c7fcc56240e28443474f/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/DirectParquetOutputCommitter.scala

[2] - https://www.appsflyer.com/blog/the-bleeding-edge-spark-parquet-and-s3/

[3] - https://www.youtube.com/watch?v=85sew9OFaYc&feature=youtu.be&t=8m39s http://www.slideshare.net/AmazonWebServices/bdt303-running-spark-and-presto-on-the-netflix-big-data-platform

+0

Sadece aynı sorunu yaşadım ve geri emr 4.8'e geri döndüm. Burada cevapları görmek için Curios. Daha fazla bilgi burada bulunabilir: https://issues.apache.org/jira/browse/SPARK-10063 – Niros

cevap

11

Sen kullanabilirsiniz: sparkContext.hadoopConfiguration.set("mapreduce.fileoutputcommitter.algorithm.version", "2")

sen EMR hakkında olduğundan sadece s3 kullanın (s3a'ya gerek yok)

Biz Spark 2.0 kullanarak ve daha okumak ben Netflix S3 committer olduğunu düşünüyorum bu jira bilet SPARK-10063

0

kontrol etmek istiyorsanız Parke (HDF'ler kadar hızlı hakkında)

oldukça hızlı S3 için yazıyoruz Zaten açık kaynaklı: https://github.com/rdblue/s3committer.

+0

Bugün itibariyle, parke dosyaları yazma işlemini desteklememektedir: http: // apache-spark-developers-list. 1001551.n3.nabble.com/Output-Committers-for-S3-td21033.html – Cristian

İlgili konular