in rsc/src/main/java/org/apache/livy/rsc/driver/RSCDriverBootstrapper.java [41:94]
public static void main(String[] args) throws Exception {
Properties props;
switch (args.length) {
case 0:
props = System.getProperties();
break;
case 1:
props = new Properties();
File propertyFile = new File(args[0]);
String fileName = propertyFile.getName();
if (!fileName.startsWith("livyConf") && fileName.endsWith("properties")) {
throw new IllegalArgumentException("File name " + fileName + "is not a legal file name.");
}
Reader r = new InputStreamReader(new FileInputStream(propertyFile), UTF_8);
try {
props.load(r);
} finally {
r.close();
}
break;
default:
throw new IllegalArgumentException("Too many arguments.");
}
SparkConf conf = new SparkConf(false);
RSCConf livyConf = new RSCConf(null);
for (String key : props.stringPropertyNames()) {
String value = props.getProperty(key);
if (key.startsWith(RSCConf.LIVY_SPARK_PREFIX)) {
livyConf.set(key.substring(RSCConf.LIVY_SPARK_PREFIX.length()), value);
props.remove(key);
} else if (key.startsWith(RSCConf.SPARK_CONF_PREFIX)) {
conf.set(key, value);
}
}
String driverClass = livyConf.get(DRIVER_CLASS);
if (driverClass == null) {
driverClass = RSCDriver.class.getName();
}
RSCDriver driver = (RSCDriver) Thread.currentThread()
.getContextClassLoader()
.loadClass(driverClass)
.getConstructor(SparkConf.class, RSCConf.class)
.newInstance(conf, livyConf);
driver.run();
}