Sto utilizzando Typesafe Config, https://github.com/typesafehub/config, per parametrizzare un lavoro Spark in esecuzione in modalità filato-cluster con un file di configurazione. Il comportamento predefinito di Typesafe Config consiste nel cercare nel classpath le risorse con nomi corrispondenti a un'espressione regolare e caricarle automaticamente nella classe di configurazione con ConfigFactory.load()
(per i nostri scopi, supponiamo che il file cercato sia chiamato application.conf
).Come aggiungere il file di configurazione al classpath di tutti gli esecutori Spark in Spark 1.2.0?
Sono in grado di caricare il file di configurazione nel driver utilizzando --driver-class-path <directory containing configuration file>
, ma l'utilizzo di --conf spark.executor.extraClassPath=<directory containing configuration file>
non inserisce la risorsa nel classpath di tutti gli esecutori come dovrebbe. Gli esecutori riferiscono che non riescono a trovare una determinata impostazione di configurazione per una chiave che esiste nel file di configurazione che sto tentando di aggiungere ai loro classpath.
Qual è il modo corretto di aggiungere un file ai percorsi classe di tutte le JVM di executor utilizzando Spark?
Nel caso in cui si sta facendo questo tramite codice, ecco la snippet- val conf = new SparkConf(). Set ("spark.files", "test.conf ") . Set (" spark.executor.extraClassPath "," ./ ") dove test.conf viene inserito nella cartella in cui eseguo il jar –