Запуск Spark внутри весенней загрузки - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь запустить Spark в локальном режиме, используя Spring boot, который в конечном итоге будет развернут как контейнер Docker. Как правильно установить память драйвера? Страница конфигурации spark https://spark.apache.org/docs/latest/configuration.html говорит, что для клиентского режима это должно быть до запуска JVM при запуске во встроенном режиме. Как можно передать эти параметры?

Файл конфигурации Spark, которым я являюсь используя.

@Configuration
public class SparkConfiguration {
    private static final Logger LOGGER = Logger.getLogger(SparkConfiguration.class);

    @Value("${config.spark.worker.threads}")
    private String workerThreads;

    @Value("${config.spark.driver.memory}")
    private String driveryMemory;

    @Value("${config.spark.sql.shuffle.partitions}")
    private String shuffleParitions;

    @Bean
    public SparkSession sparkSession() {
//        Logger.getLogger("org").setLevel(Level.OFF);
//        Logger.getLogger("akka").setLevel(Level.OFF);

        SparkSession sparkSession = SparkSession.builder()
                .master(getWorkerThreadCount())
                .appName("API-Spark")

                /*  Spark UI Config */
                .config("spark.ui.enabled", true)
                .config("spark.ui.killEnabled", true)
                .config("spark.ui.retainedJobs", 100)
                .config("spark.ui.retainedStages", 100)
                .config("spark.ui.retainedTasks", 1000)
                /* Spark performance configs */
                .config("spark.driver.memory", driveryMemory)
                .config("spark.sql.shuffle.partitions",shuffleParitions)
                .config("spark.sql.crossJoin.enabled",true)
                .getOrCreate();

        Map<String, String> all = sparkSession.conf().getAll();

        LOGGER.info(" Spark runtime config "+all);

        LOGGER.info("Started Spark App ::: UI at : " + sparkSession.sparkContext().uiWebUrl().get());
        return sparkSession;
    }

    private String getWorkerThreadCount() {
        return "local[WORKER_THREAD_COUNT]".replace("WORKER_THREAD_COUNT", workerThreads);
    }

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