2015-09-21 15 views
5

Jak zwiększyć pamięć Sparka podczas korzystania z lokalnego [*]?Zwiększ pamięć iskry, gdy używana jest lokalna [*]

Próbowałem ustawienie pamięć tak:

val conf = new SparkConf() 
    .set("spark.executor.memory", "1g") 
    .set("spark.driver.memory", "4g") 
    .setMaster("local[*]") 
    .setAppName("MyApp") 

Ale wciąż otrzymujemy:

MemoryStore: MemoryStore started with capacity 524.1 MB 

Czy to ma coś wspólnego z:

.setMaster("local[*]") 
+0

Czy próbowałeś zwiększyć 'spark.executor.memory'? –

+0

.setMaster ("local [*]") służy do używania dostępnego rdzenia na komputerze lokalnym do wykonywania przetwarzania –

Odpowiedz

4

udało mi się rozwiązać ten problem poprzez uruchomienie SBT z:

sbt -mem 4096 

Jednak MemoryStore jest o połowę mniejszy. Nadal zastanawiam się, gdzie jest ta frakcja.

+0

Całkowita pamięć jest obliczana przez spark.storage.memoryFraction * spark.storage.safetyFraction - domyślnie 0.6 i 0.9 – Gillespie

+0

@Gillespie Dziękujemy – BAR

+0

Ta odpowiedź jest nieprawidłowa . W ten sposób nie zwiększasz pamięci, gdy uruchamiasz aplikację w samodzielnym klastrze lokalnym.Mimo to komentarze @Gillespie są bardzo przydatne + jego odpowiedzią jest sposób na zrobienie tego! – eliasah

4

Zakładając, że używają iskrownika ... ustawienie iskry.driver.memory w twojej aplikacji nie działa, ponieważ twój d proces rzeki już się rozpoczął z domyślną pamięcią.

Można też uruchomić zapłonie powłokę za pomocą:

./bin/spark-shell --driver-memory 4g 

lub można ją ustawić w zapłonowej-defaults.conf:

spark.driver.memory 4g 

Jeśli uruchamiasz aplikację za pomocą iskry-submit , musisz określić pamięć sterownika jako argument:

./bin/spark-submit --driver-memory 4g --class main.class yourApp.jar 
+0

Nie używam powłoki. – BAR

+0

to musisz podać pamięć sterownika jako argument podczas uruchamiania aplikacji. Chodzi o to, że zanim Twój SparkConf zostanie odczytany w aplikacji - jest już za późno. – Gillespie

+0

Powinno się więc udać w SBT? – BAR

1

Ułamek sterty używany do pamięci Sparka y cache jest domyślnie 0.6, więc jeśli potrzebujesz więcej niż 524,1 MB, powinieneś zwiększyć ustawienie spark.executor.memory :)

Technicznie możesz także zwiększyć ułamek używany w pamięci podręcznej Sparka, ale uważam, że jest to odradzane lub najmniej wymaga wykonania dodatkowej konfiguracji. Aby uzyskać więcej informacji, patrz https://spark.apache.org/docs/1.0.2/configuration.html.

1

Próbowałem --driver-memory 4g, --executor-memory 4g, nie pracowałem nad zwiększeniem pamięci operacyjnej. Zauważyłem jednak, że bin/spark-submit zbierało _JAVA_OPTIONS, ustawiając to na -Xmx4g, aby je rozwiązać. Używam jdk7

Powiązane problemy