Apache Kudu с Apache Spark NoSuchMethodError: exportAuthenticationCredentials
У меня есть эта функция с Spark и Scala:
import org.apache.kudu.client.CreateTableOptions
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
import org.apache.spark.sql.{DataFrame, Dataset, Encoders, SparkSession}
import org.apache.kudu.spark.kudu._
def save(df: DataFrame): Unit ={
val kuduContext: KuduContext = new KuduContext("quickstart.cloudera:7051")
kuduContext.createTable(
"test_table", df.schema, Seq("anotheKey", "id", "date"),
new CreateTableOptions()
.setNumReplicas(1))
kuduContext.upsertRows(df, "test_table")
}
Но при попытке создать kuduContext возникает исключение:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.kudu.client.KuduClient.exportAuthenticationCredentials()[B
at org.apache.kudu.spark.kudu.KuduContext.<init>(KuduContext.scala:63)
at com.mypackge.myObject$.save(myObject.scala:24)
at com.mypackge.myObject$$anonfun$main$1.apply$mcV$sp(myObject.scala:59)
at com.mypackge.myObject$$anonfun$main$1.apply(myObject.scala:57)
at com.mypackge.myObject$$anonfun$main$1.apply(myObject.scala:57)
at com.mypackge.myObject$.time(myObject.scala:17)
at com.mypackge.myObject$.main(myObject.scala:57)
at com.mypackge.myObject.main(myObject.scala)
Спарк работает без проблем. Я установил виртуальную машину Kudu, как описано в официальных документах, и без проблем зарегистрировался с Bash на Impala.
У кого-нибудь есть идеи о том, что я делаю не так?
1 ответ
Решение
Проблема заключалась в зависимости проекта от старой версии kudu-client (1.2.0), когда я использовал kudu-spark 1.3.0 (которая включает в себя kudu-client 1.3.0). Исключением был kudu-client из pom.xml.