Когда выполняется java -jar, JavaEsSpark.esRDD завершается с ошибкой ExceptionInInitializerError, URI не является иерархическим - PullRequest
0 голосов
/ 20 сентября 2019

Я разрабатываю часть spark (v2.4.3), которая читает эластичный поиск (v7.3.0) на подпружиненной загрузке 2 (web) с использованием es-hadoop (v7.3.1).

** ref https://www.elastic.co/guide/en/elasticsearch/hadoop/master/spark.html

Когда я запускаю его с «mvn spring-boot: run», он работает нормально.

Но, когда я запускаю егос помощью "java -jar output.jar" JavaEsSpark делает ошибку при доступе кasticsearch. Я думал по-разному, но не знаю почему.

"ExceptionInInitializerError: null .. RestService" "sql.Не удалось создать экземпляр DefaultSource15 "" URI не является иерархической .. версией. "

Я прошу вашей помощи (-.-)

** ps.Я проверил пакеты в jar-файле.=> ОКЯ пытался с SparkSession, но также не удалось.(выполнение java -jar)

** мой код https://github.com/maxmin93/agens-spark/blob/master/src/main/java/net/bitnine/agensspark/AgenssparkApplication.java

LOGGER.info("SpringBootSpark To Elasticsearch Application: {}, {}, {}, {}"
                , appName, nodes, port, sparkHome);

String master = "local[*]";
SparkConf conf = new SparkConf()
        .setAppName(appName)
        .setSparkHome(sparkHome)
        .setMaster(master)
                .set("spark.executor.memory", "2g")
        .set("spark.driver.memory", "2g")
        .set("spark.eventLog.enabled","false")
        .set("es.nodes.wan.only", "true")
        .set("es.nodes", nodes)
        .set("es.port", port)
        .set("es.mapping.id", "id")
        .set("es.write.operation", "upsert")
        .set("es.index.read.missing.as.empty", "true");

        JavaSparkContext jsc = new JavaSparkContext(conf);

// for DEBUG
System.out.println("\n\n==================================\n");
System.out.println(Arrays.stream(jsc.getConf().getAll()).map(t->{
    return t._1()+"="+t._2();
}).collect(Collectors.joining(", ")));

JavaPairRDD<String, Map<String, Object>> esRDD =
    JavaEsSpark.esRDD(jsc, resource, "?q=datasource:sample");
System.out.println("\n**count = "+esRDD.count());

сообщение об ошибке

==================================

spark.app.id=local-1568944125286, spark.executor.memory=2g, spark.home=/Users/bgmin/Servers/spark, es.port=15619, spark.app.name=agensspark, spark.executor.id=driver, es.mapping.id=id, es.index.read.missing.as.empty=true, spark.driver.host=192.168.0.20, spark.driver.memory=2g, spark.driver.port=49672, spark.master=local[*], es.write.operation=upsert, es.nodes=27.117.163.21, spark.eventLog.enabled=false, es.nodes.wan.only=true
2019-09-20 10:48:45.397  INFO 14660 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-09-20 10:48:45.401 ERROR 14660 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.ExceptionInInitializerError: null
    at org.elasticsearch.hadoop.rest.RestService.findPartitions(RestService.java:216) ~[elasticsearch-hadoop-7.3.2.jar!/:7.3.2]
    at org.elasticsearch.spark.rdd.AbstractEsRDD.esPartitions$lzycompute(AbstractEsRDD.scala:79) ~[elasticsearch-hadoop-7.3.2.jar!/:7.3.2]
    at org.elasticsearch.spark.rdd.AbstractEsRDD.esPartitions(AbstractEsRDD.scala:78) ~[elasticsearch-hadoop-7.3.2.jar!/:7.3.2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...