Skip to content
This repository was archived by the owner on Apr 5, 2022. It is now read-only.

Commit 578e1d3

Browse files
committed
Adding options to SparkYarnTasklet [SHDP-582, SHDP-559]
- adding extraClassPath option - adding executorCores, driverCores and driverMemory options
1 parent 3a5c3b8 commit 578e1d3

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

spring-hadoop-spark/src/main/java/org/springframework/data/hadoop/batch/spark/SparkYarnTasklet.java

+42-2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public class SparkYarnTasklet implements InitializingBean, Tasklet, StepExecutio
4444

4545
private String sparkAssemblyJar;
4646

47+
private String extraClassPath;
48+
4749
private Configuration hadoopConfiguration;
4850

4951
private String appName;
@@ -58,13 +60,23 @@ public class SparkYarnTasklet implements InitializingBean, Tasklet, StepExecutio
5860

5961
private String executorMemory;
6062

63+
private String executorCores;
64+
65+
private String driverMemory;
66+
67+
private String driverCores;
68+
6169
private int numExecutors;
6270

6371
private String[] arguments;
6472

6573
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
6674
SparkConf sparkConf = new SparkConf();
6775
sparkConf.set("spark.yarn.jar", sparkAssemblyJar);
76+
if (StringUtils.hasText(extraClassPath)) {
77+
sparkConf.set("spark.driver.extraClassPath", extraClassPath);
78+
sparkConf.set("spark.executor.extraClassPath", extraClassPath);
79+
}
6880
List<String> submitArgs = new ArrayList<String>();
6981
if (StringUtils.hasText(appName)) {
7082
submitArgs.add("--name");
@@ -82,10 +94,22 @@ public RepeatStatus execute(StepContribution contribution, ChunkContext chunkCon
8294
submitArgs.add("--archives");
8395
submitArgs.add(resourceArchives);
8496
}
85-
submitArgs.add("--executor-memory");
86-
submitArgs.add(executorMemory);
8797
submitArgs.add("--num-executors");
8898
submitArgs.add("" + numExecutors);
99+
submitArgs.add("--executor-memory");
100+
submitArgs.add(executorMemory);
101+
if (!StringUtils.hasText(executorCores)) {
102+
submitArgs.add("--executor-cores");
103+
submitArgs.add(executorCores);
104+
}
105+
if (!StringUtils.hasText(driverMemory)) {
106+
submitArgs.add("--driver-memory");
107+
submitArgs.add(driverMemory);
108+
}
109+
if (!StringUtils.hasText(driverCores)) {
110+
submitArgs.add("--driver-cores");
111+
submitArgs.add(driverCores);
112+
}
89113
for (String arg : arguments) {
90114
submitArgs.add("--arg");
91115
submitArgs.add(arg);
@@ -137,6 +161,10 @@ public void setSparkAssemblyJar(String sparkAssemblyJar) {
137161
this.sparkAssemblyJar = sparkAssemblyJar;
138162
}
139163

164+
public void setExtraClassPath(String extraClassPath) {
165+
this.extraClassPath = extraClassPath;
166+
}
167+
140168
public void setHadoopConfiguration(Configuration configuration) {
141169
this.hadoopConfiguration = configuration;
142170
}
@@ -165,6 +193,18 @@ public void setExecutorMemory(String executorMemory) {
165193
this.executorMemory = executorMemory;
166194
}
167195

196+
public void setExecutorCores(String executorCores) {
197+
this.executorCores = executorCores;
198+
}
199+
200+
public void setDriverMemory(String driverMemory) {
201+
this.driverMemory = driverMemory;
202+
}
203+
204+
public void setDriverCores(String driverCores) {
205+
this.driverCores = driverCores;
206+
}
207+
168208
public void setNumExecutors(int numExecutors) {
169209
this.numExecutors = numExecutors;
170210
}

0 commit comments

Comments
 (0)