2016-09-12 4 views
2

로컬로 실행되는 Spark 어플리케이션에 최대 메모리를 설정하려고합니다. 나는 많은 다른 방법을 시도했다.스파크 메모리를 설정할 수 없습니다.

프로그램

SparkConf conf = new SparkConf(); 
conf.setMaster("local[2]"); 
conf.setAppName("app");  
conf.set("spark.executor.memory", "4G"); 
conf.set("spark.driver.memory", "4G"); 
sc = new JavaSparkContext(conf); 

에서

그리고

./bin/spark-submit.cmd ./local/app.jar --master local[2] --driver-memory 4G 

을 실행하지만 난 항상
INFO [MemoryStore] MemoryStore started with capacity 366.3 MB 

다음

을 얻을 스파크 디스크에 RDD 유출. 스파크 버전은 2.0입니다.

어떻게해야합니까?

+2

당신이 작은 'g'를 시도 않았다 전에 가야합니다 --driver-memory 상관 보인다? – numX

+0

@numX 작은 g을 시도했지만 그 결과는 같습니다. –

답변

2

로컬에서 실행 중일 때 spark는 더 많은 메모리를 사용하지 않고 java 프로세스를 사용할 수 있습니다. 당신은 여분의 메모리 VM의 PARAMS 사용하여 응용 프로그램을 실행하려고합니다 -Xms2048m -Xmx4096m

+0

이것은 또한 작동하지 않습니다. 하지만 Spark 버전을 1.6.1로 변경하고 이제는 정상입니다. –

0

을 2

스파크를 금지 '-Xms'및 '-Xmx'에 spark.driver.memory 변환 스파크 로컬 실행중인 인스턴스에 대한 spark.driver.memory 작품 .

1

로컬 모드에서는 실행 프로그램이 드라이버이므로 힙의 일부분입니다. spark-submit이 실행될 때까지 JVM이 이미 시작되었으므로 --driver-memory 인수를 전달해야합니다. 예 :

spark-submit --driver-memory 4g --class MyClass spark-app-1.0.jar 

4G로 JVM을 시작합니다.

주문은 즉 --class

+0

이것은 나를 도왔습니다! 논쟁의 순서는 정말로 중요합니다! – CedricDeBoom

관련 문제