Проблема Spark Context с приложением Spring Boot - PullRequest
1 голос
/ 30 июня 2019

Я написал загрузочное приложение 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 - нет.

Спасибо

1 Ответ

0 голосов
/ 01 июля 2019

Вы пытались внедрить контекст как другой обычный Spring Bean вместо ручного создания экземпляра? Это должно работать в любом случае, но я думаю, что это правильный способ использования Spring.

Откуда вы вызываете этот метод? Сколько раз?

Похоже, что несколько потоков обращаются к методу одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...