Я написал загрузочное приложение Spring, используя Apache Spark.Он отлично работает на моей машине, но когда я пытался развернуть его на виртуальной машине (Debian 9 с 4 GO памяти, 2 vCPU и 60 ГБ памяти) и запустить его, выдается следующее исключение: Ошибка инициализации SparkContext.java.lang.IllegalArgumentException: уже существует RpcEndpoint с именем LocalSchedulerBackendEndpoint.
Я добавил параметр: set ("spark.driver.allowMultipleContexts", "true"), и он также не работал.
Я не использую несколько контекстов в моей программе, вот код:
public Set<Customer> retrieveCustomers(String a) {
SparkConf sparkConf = new SparkConf().setAppName("Spring boot app ")
.setMaster("local[2]")
.set("spark.driver.allowMultipleContexts", "true") ;
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
final List<String> stopWords = getStopWords(ctx).collect();
List<Tuple2<String, Tuple3<String,String,String>>> collect = getCompanies(ctx).collect();
a = cleanText(a.substring(0,1000));
String allTextLowerCase = a.toLowerCase();
JavaRDD<Customer> words = ctx.parallelize(Arrays.asList(SPACE.split(a)))
.filter(word -> isNotStopWord(word,stopWords))
.filter(word -> ! word.trim().isEmpty())
.map(word -> toDenomination(collect,word,allTextLowerCase))
.filter(Objects::nonNull);
Set<Customer> customers = new HashSet<>( words.collect());
System.out.println("Total found Words :" + customers.size());
ctx.cancelAllJobs();
ctx.stop();
System.clearProperty("spark.driver.port");
}
У вас есть какое-либо решение для моей проблемы?почему приложение инициализировало несколько контекстов Spark на сервере, а в localhost - нет.
Спасибо