Phoenix-hbase не может выполнить запрос upsert через jdbc - PullRequest
0 голосов
/ 19 сентября 2019

Во-первых, я хочу уточнить, что создание запроса работает нормально.

при выполнении следующих действий: запрос 1 и запрос 3 приводят к ошибке при выполнении запроса 3, но запрос 2 и 3 работает нормально. Я не могунайти что-нибудь в сети.

class test {
    public static void main(String args[]) {
        Connection connection;
        try {
            Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        connection = DriverManager.getConnection("jdbc:phoenix:localhost:2181/hbase-insecure");
        //(note:i have tried without /hbase - insecure the result is same)

//query 1:-> 
        connection.createStatement().executeUpdate("UPSERT INTO tableName VALUES('1','randomValue','randomValue',1234567890, 'randomValue', 'randomValue')");

//query 2:->
        connection.createStatement().executeUpdate("CREATE TABLE IF NOT EXISTS tableName (A VARCHAR(40), Z.B.type VARCHAR, Z.C VARCHAR, Z.D UNSIGNED_LONG, Z.E VARCHAR,X.F VARCHAR CONSTRAINT rowkey PRIMARY KEY (A))");

//query 3:-> 
        connection.commit();
    }
}

Ошибка: исключение в потоке "streaming-job-executor-0" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.KeyValueUtil.length (()в org.apache.phoenix.execute.MutationState.send (MutationState.java:971) в org.apache.phoenix.execute.MutationState.send (MutationState.java:1344) в org.apache.phoenix.execute.MutationState.commit(MutationState.java:1167) в org.apache.phoenix.jdbc.PhoenixConnection $ 3.call (PhoenixConnection.java:670) в org.apache.phoenix.jdbc.PhoenixConnection $ 3.call (PhoenixConnection.java:666) или вapache.phoenix.call.CallRunner.run (CallRunner.java:53) в org.apache.phoenix.jdbc.PhoenixConnection.commit (PhoenixConnection.java:666) в com.kratinmobile.uep.services.SparkStream.lambda $ null $ 0 (SparkStream.java: 119) на java.lang.Iterable.forEach (Iterable.java:75) на com.kratinmobile.uep.services.SparkStream.lambda $ startStreaming $ 10899135 $ 1 (SparkStream.java:102) на org.apache.spark.streaming.api.java.JavaDStreamLike $$ anonfun $ foreachRDD $ 1.apply (JavaDStreamLike.scala: 272) в org.apache.spark.streaming.api.java.JavaDStreamLike $$ anonfun $ foreachRDD $ 1.apply (JavaDStreamLike.) в org.apache.spark.streaming.dstream.DStream $$ anonfun $ foreachRDD $ 1 $$ anonfun $ apply $ mcV $ sp $ 3.apply (DStream.scala: 628) в org.apache.spark.streaming.dstream.DStream$$ anonfun $ foreachRDD $ 1 $$ anonfun $ apply $ mcV $ sp $ 3.apply (DStream.scala: 628) в org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1 $$ anonfun $ apply $ mcV $ sp$ 1.apply $ mcV $ sp (ForEachDStream.scala: 51) в org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1 $$ anonfun $ apply $ mcV $ sp $ 1.apply (ForEachDStream.scala: 51) в org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1 $$ anonfun $ apply $ mcV $ sp $ 1.apply (ForEachDStream.scala:51) в org.apache.spark.streaming.dstream.DStream.createRDDWithLocalProperties (DStream.scala: 416) в org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1.apply $ mcV $ sp (ForEachDStream.scala:50) в org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1.apply (ForEachDStream.scala: 50) в org.apache.spark.streaming.dstream.ForEachDStream $$ anonfun $ 1.apply (ForEachDStream.scala:50) в scala.util.Try $ .apply (Try.scala: 192) в org.apache.spark.streaming.scheduler.Job.run (Job.scala: 39) в org.apache.spark.streaming.scheduler.JobScheduler $ JobHandler $$ anonfun $ run $ 1.apply $ mcV $ sp (JobScheduler.scala: 257) в org.apache.spark.streaming.scheduler.JobScheduler $ JobHandler $$ anonfun $ run $ 1.apply (JobScheduler.scala: 257) в org.apache.spark.streaming.scheduler.JobScheduler $ JobHandler $$ anonfun $ run $ 1.apply (JobScheduler.scala: 257) в scala.util.DynamicVariable.withValue (DynamicVariable.scala: 58) в org.apache.spark.streaming.scheduler.JobScheduler $ JobHandler.run (JobScheduler.scala: 256) в java.util.concurrent.ThreadPoolExecutor.runJava: 1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в java.lang.Thread.run (Thread.java:748)

1 Ответ

1 голос
/ 21 сентября 2019

Глядя на трассировку стека, он, скорее всего, выглядит как несоответствие пути к классам или несоответствие версий.

...