2016-04-04 19 views
4

Kıvılcım (1.6) bağımsız bir kümeyi kurdum. 1 master var ve işçiler olarak conf/slaves dosyası altında 3 makine eklediler. Kıvılcımdaki işçilerimin her birine 4GB bellek ayırmış olsam da, uygulama çalışırken neden sadece 1024MB kullanıyor? Bunun için kendisine ayrılan 4 GB'yi kullanmak istiyorum. Nerede ve ne yaptığımı anlamaya yardım et.Kıvılcım çalışanı belleği

Aşağıda, kıvılcım ana sayfasının ekran görüntüsü (uygulama, spark-submit kullanılarak çalıştırıldığında), Bellek sütununun altında, 4.0 GB'nin yanında parantez içinde kullanılan 1024.0 MB değerini gösterir.

Ben de gönderin kıvılcım ve ( How to change memory per node for apache spark worker önerildiği gibi) çalışmıyor ile --executor hafızalı 4G seçeneğini ayarlayarak çalıştı.

Bunlar spark-env.sh dosyasında belirlenen

ihracat SPARK_WORKER_CORES = 3

ihracat SPARK_WORKER_MEMORY = 4g

ihracat SPARK_WORKER_INSTANCES = 2

enter image description here

cevap

3

Bir diğer çözüm conf/spark-defaults.conf dosya içindeki aşağıdaki parametreleri ayarlamak denemektir. Yöneticinin belleğini bu şekilde başlatmak daha iyidir çünkü probleminiz hiçbir çalışanın çalışanının tüm mevcut belleğini tahsis edemeyeceğidir.

+0

Burada ayarlanması gerekenler. Bu, master (driver ???) düğümünde olmalı. Benim durumumda hem usta hem de sürücü aynı. Spark.executor.memory öğesini spark-defaults.conf dosyasında 3g olarak ayarladığımda, kullanılan bellek 3g'ye yükseltildi. Dokümantasyonda olabilir ve onu özledim. Ama başlangıç ​​için teşekkürler. Bu yüzden bunu cevap olarak işaretleyeceğim. – B1K

+0

Bir şey değil. Anlayışımdan "spark.executor.memory" parametresini komut dizisinden geçirerek, çalışanı belirtilen bellekle çalıştırmayı başlatır. Sürücüdeki 'exek-verici-bellek 'bayrağı, her bir yürütücüden ne kadar bellek ayrılması gerektiğini belirlerken, gönderen işin yürütülmesi için. – raschild

0
olan seçeneklerdir

Aradığınız parametre executor-memory deneme modelidir. Bunu başlattığınızda bu kıvılcım uygulamanıza iding.

--executor-memory 4g

o zaman o çalışana üzerinde çalışan en büyük vasisi 4g için işçi-hafızayı set

4g olduğunu. PS: Farklı yapılandırmalara sahip olabilirsiniz (her biri farklı çalışan belleğe sahip). Eğer (senin durumunda sadece son satırı) Yukarıdaki ayarladıktan sonra

spark.driver.cores    4 
spark.driver.memory    2g 
spark.executor.memory   4g 

kerede tüm işçileri kapatıp onları yeniden başlatın:

+0

4g, ben çalıştım --executor hafızalı 4G seçeneği ne zaman başvurumu başlat ve hala bir değişiklik yok. Teşekkürler. – B1K

+0

4g'yi denediniz (burada g büyük değil) – Manas

+0

evet ve bu da işe yaramıyor! – B1K

0

bu satırı eklemek kıvılcım/conf dizininde yılında spark-env.sh adlı bir dosya oluşturmak SPARK_EXECUTOR_MEMORY = Benim orijinal sonrası bahsettiği gibi