2015-08-11 20 views
14

Bir Spark ve Flink k-means uygulaması kurdum. Test durumum, 3 düğüm kümesinde 1 milyon nokta üzerinde kümelenme.Spark vs Flink az hafıza kullanılabilir

Bellek içi darboğazlar başladığında, Flink diske kaynak aktarmaya başlar ve yavaş çalışır ancak çalışır. Ancak, bellek doluysa ve tekrar başladığında Spark, sürücüleri kaybeder (sonsuz döngü?).

Bellek ayarını buradan posta listesi yardımıyla buradan özelleştirmeye çalışıyorum, teşekkürler. Ama Spark hala çalışmıyor.

Ayarlanacak herhangi bir yapılandırmaya sahip olmak gerekli mi? Flink, düşük hafızayla çalıştığı anlamına geliyor, Spark da yapabilmelidir; ya da değil?

cevap

19

Ben bir Spark uzmanı değilim (ve ben bir Flink katkısıyım). Bildiğim kadarıyla, yeterli ana bellek yoksa Spark diske dökülemez. Bu, Spark üzerinde Flink'in bir avantajı. Ancak Spark, Flink'e benzer yönetilen belleği etkinleştirmek için yeni bir proje "Tungsten" çağrısını duyurdu. (Çok verim birçok sonuçlar "bellek yetersiz kıvılcım" ile bir Internet arama) https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.html

hafıza sorunlarının dışına Spark SO soru bir çift vardır: Bu özellik zaten mevcut olup olmadığını bilmiyorum

bu yardım Spark out of memory

Belki bir

spark java.lang.OutOfMemoryError: Java heap space Spark runs out of memory when grouping by key .

+4

Spark, verileri diske serileştirebilir, ancak verilerin belirli bölümleri için JVM'nin yığınının üzerinde olmasını gerektirir. Yığın boyutu yeterli değilse, iş bir OutOfMemoryError ile ölür. Aksine, Flink'in motoru yığın üzerinde çok fazla nesne biriktirmez, ancak bunları özel bir bellek bölgesinde depolar. Tüm operatörler çok az bellekle baş edebilecekleri ve diske dökülebilecekleri şekilde uygulanmaktadır. Bu [blog yayını] (http://flink.apache.org/news/2015/05/11/Juggling-with-Bits-and-Bytes.html) Flink'in bellek yönetimini ve ikili verilerde nasıl çalıştığını anlatır. –

İlgili konular