SparkLauncher запускает только одно приложение даже при подаче нескольких заявок - PullRequest
2 голосов
/ 07 марта 2019

Я отправляю / запускаю несколько приложений через spark launcher в своем веб-приложении java.Кажется, он отправляет только одно приложение. Вот мой код

Runnable run = new Runnable() {
        public void run() {
            try {
                SparkAppHandle sparkApp = new SparkLauncher()
                 .setAppResource("C:\\BigData\\spark\\examples\\jars\\spark-examples_2.11-2.4.0.jar")
                    .setMainClass("org.apache.spark.examples.SparkPi")
                    .setMaster("spark://192.168.2.233:7077")
                    .setConf("spark.scheduler.mode", "FAIR")
                    .setVerbose(true)
                    .setConf("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
                    .setConf("spark.sql.inMemoryColumnarStorage.batchSize", "10000")
                    .setConf("spark.sql.codegen","false")
                    .setConf("spark.submit.deployMode", "client")
                    .setConf("spark.executor.memory", "1g")
                    .setConf("spark.driver.memory", "1g")
                    .setConf("spark.cores.max", "1")
                    .setConf("spark.executor.cores", "1")
                    .setConf("spark.executor.instances", "1")
                    .setConf("spark.driver.host","192.168.2.233")
//                  .setConf("spark.dynamicAllocation.enabled", "true")
//                  .setConf("spark.shuffle.service.enabled", "true")
                    .startApplication();


                System.out.println(sparkApp.getState());

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
     };

//running two times so as to submit two parallel application
//in the application logic , we would pass different args to different app
     new Thread(run).start();
     new Thread(run).start();`

У меня есть автономный кластер с одним рабочим узлом 1 (8 ГБ, 4 ядра) и другим рабочим узлом 2 (8 ГБ, 2 ядра).Мастер работает на узле 1, а драйвер также только на узле 1.

Кажется, что даже если приложение запускает второй поток, с ним ничего не происходит, и второе приложение даже не появляется в состоянии ОЖИДАНИЯ, которое было бы понятно,

...