Looks like I hit issue https://issues.apache.org/jira/browse/PHOENIX-5231
<https://issues.apache.org/jira/browse/PHOENIX-5231>
My scala application builds without any problem agains phoenix 4.13.x and
4.14.x.
But got run-time problem with 4.15.0:
Caused by: org.apache.phoenix.exception.PhoenixNonRetryableRuntimeException:
Could not load/instantiate class
org.apache.phoenix.query.DefaultGuidePostsCacheFactory
at
org.apache.phoenix.query.GuidePostsCacheProvider.loadAndGetGuidePostsCacheFactory(GuidePostsCacheProvider.java:57)
at
org.apache.phoenix.query.GuidePostsCacheProvider.getGuidePostsCache(GuidePostsCacheProvider.java:73)
at
org.apache.phoenix.query.ConnectionQueryServicesImpl.<init>(ConnectionQueryServicesImpl.java:433)
at org.apache.phoenix.jdbc.PhoenixDriver$3.call(PhoenixDriver.java:248)
at org.apache.phoenix.jdbc.PhoenixDriver$3.call(PhoenixDriver.java:241)
at
com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4796)
at
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
at
com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4793)
at
org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:241)
at
org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:142)
at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at PhoenixWriter.<init>(PhoenixWriter.scala:29)
Any ideas how to build scala application with phoenix-4.15.0?
My build dependency for Scala application is:
libraryDependencies ++= Seq(
"org.apache.logging.log4j" %% "log4j-api-scala" % "11.0",
"org.apache.logging.log4j" % "log4j-api" % "2.8.2",
"org.apache.logging.log4j" % "log4j-core" % "2.8.2" % Runtime,
"org.apache.hadoop" % "hadoop-common" % "2.9.0",
"org.apache.hadoop" % "hadoop-client" % "2.9.0",
"org.apache.hbase" % "hbase" % "1.4.12",
"org.apache.hbase" % "hbase-client" % "1.4.12",
"org.apache.hbase" % "hbase-common" % "1.4.12",
"org.apache.hbase" % "hbase-server" % "1.4.12",
"org.apache.phoenix" % "phoenix" %
"4.15.0-HBase-1.4",
"org.apache.phoenix" % "phoenix-core" %
"4.15.0-HBase-1.4",
)
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}