So, I have a spark standalone cluster with 16 worker nodes and one master node. I start the cluster with "sh start-all.sh" command from the master node in spark_home/conf folder. The master node has 32Gb Ram and 14 VCPUS, while I have 16Gb Ram and 8 VCPUS per node. I also have a spring application which, when it starts(with java -jar app.jar), it initializes the spark context. The spark-env.sh file is:
export SPARK_MASTER_HOST='192.168.100.17'
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=14000mb
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_OPTS='-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=172800 -Dspark.worker.cleanup.appDataTtl=172800'
I do not have anything in spark-defaults.conf and the code for initializing the spark context programmatically is:
@Bean
public SparkSession sparksession() {
SparkSession sp = SparkSession
.builder()
.master("spark://....")
.config("spark.cassandra.connection.host","192.168.100......")
.appName("biomet")
.config("spark.driver.memory","20g")
.config("spark.driver.maxResultSize", "10g")
.config("spark.sql.shuffle.partitions",48)
.config("spark.executor.memory","7g")
.config("spark.sql.pivotMaxValues","50000")
.config("spark.sql.caseSensitive",true)
.config("spark.executor.extraClassPath","/home/ubuntu/spark-2.4.3-bin-hadoop2.7/jars/guava-16.0.1.jar")
.config("spark.hadoop.fs.s3a.access.key","...")
.config("spark.hadoop.fs.s3a.secret.key","...")
.getOrCreate();
return sp;
}
After all this the Environment tab of the Spark UI has spark.driver.maxResultSize 10g and spark.driver.memory 20g BUT the executors tab for the storage memory of the driver says 0.0 B / 4.3 GB.
(FYI: I used to have spark.driver.memory at 10g(programmatically set), and in the executor tab was saying 4.3Gb, but now it seems I cannot change it. But I am thinking that even if when I had it 10g, wasn't it suppose to give me more than 4.3Gb?!)
How can I change the driver memory? I tried setting it from spark-defaults.conf but nothing changed. Even if I do not set at all the driver memory(or set it to smaller than 4.3Gb) it still says 4.3Gb in executors tab.