Have you tried adding hbase-protocol to the SPARK_CLASSPATH? That worked for me to get Spark playing nicely with Phoenix.
On Tue, Mar 17, 2015 at 6:15 PM, Andrew Purtell <apurt...@apache.org> wrote: > This is HBASE-11118 (https://issues.apache.org/jira/browse/HBASE-11118). > Looks like someone else wrote in that Oozie wasn't working for them. You > should follow up on the HBase issue tracker, although no promises, it may > be an Oozie problem, but this is not a Phoenix issue. > > On Mon, Mar 16, 2015 at 2:39 AM, junaid khalid < > junaid.kha...@platalytics.com> wrote: > >> hbase-protocol.jar is added to path. I can see that in spark-UI of the >> running application. >> >> phoenix-core version is 4.3.0 and phoenix-server.jar version is 4.2.3. >> >> On Mon, Mar 16, 2015 at 2:15 PM, Fulin Sun <su...@certusnet.com.cn> >> wrote: >> >>> Hi, >>> Did you add hbase-protocol.jar into your application classpath? >>> Do you find some version incompatibility between your client and server? >>> >>> Thanks, >>> Sun. >>> >>> ------------------------------ >>> ------------------------------ >>> >>> CertusNet >>> >>> >>> *From:* junaid khalid <junaid.kha...@platalytics.com> >>> *Date:* 2015-03-16 16:50 >>> *To:* user <user@phoenix.apache.org> >>> *Subject:* Fwd: java.lang.IllegalAccessError: >>> com/google/protobuf/HBaseZeroCopyByteString >>> i have a spark program in which it connects to hbase using phoenix and >>> upserts record in hbase table. It runs fine when run through spark-submit >>> command and work as expected. But when I run it through oozie, it gives >>> following exception. While running submitting through oozie, if spark is >>> run in local mode the program works fine. >>> >>> I am using spark 1.2, phoenix 4.2.3 and hbase 0.98.6-cdh5.3.1. >>> >>> --- >>> 15/03/16 13:13:18 WARN HTable: Error calling coprocessor service >>> org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService for >>> row \x00\x00TABLE55068E2AED4AB9B607BBBE49 >>> java.util.concurrent.ExecutionException: java.lang.IllegalAccessError: >>> com/google/protobuf/HBaseZeroCopyByteString >>> at java.util.concurrent.FutureTask.report(FutureTask.java:122) >>> at java.util.concurrent.FutureTask.get(FutureTask.java:188) >>> at >>> org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1583) >>> at >>> org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1540) >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1006) >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl.getTable(ConnectionQueryServicesImpl.java:1257) >>> at >>> org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:348) >>> at >>> org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:309) >>> at >>> org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:305) >>> at >>> org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:352) >>> at >>> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:237) >>> at >>> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:231) >>> at >>> org.apache.phoenix.compile.FromCompiler.getResolverForMutation(FromCompiler.java:207) >>> at >>> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:248) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:487) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:478) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:279) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:272) >>> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:270) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1052) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1$$anonfun$apply$1.apply(SmartSink.scala:194) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1$$anonfun$apply$1.apply(SmartSink.scala:175) >>> at scala.collection.Iterator$class.foreach(Iterator.scala:727) >>> at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1.apply(SmartSink.scala:175) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1.apply(SmartSink.scala:169) >>> at >>> org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1.apply(RDD.scala:773) >>> at >>> org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1.apply(RDD.scala:773) >>> at >>> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1314) >>> at >>> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1314) >>> at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61) >>> at org.apache.spark.scheduler.Task.run(Task.scala:56) >>> at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:196) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: java.lang.IllegalAccessError: >>> com/google/protobuf/HBaseZeroCopyByteString >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl$7.call(ConnectionQueryServicesImpl.java:1265) >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl$7.call(ConnectionQueryServicesImpl.java:1258) >>> at org.apache.hadoop.hbase.client.HTable$17.call(HTable.java:1571) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:262) >>> ... 3 more >>> java.sql.SQLException: java.lang.IllegalAccessError: >>> com/google/protobuf/HBaseZeroCopyByteString >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1024) >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl.getTable(ConnectionQueryServicesImpl.java:1257) >>> at >>> org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:348) >>> at >>> org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:309) >>> at >>> org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:305) >>> at >>> org.apache.phoenix.compile.FromCompiler$BaseColumnResolver.createTableRef(FromCompiler.java:352) >>> at >>> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:237) >>> at >>> org.apache.phoenix.compile.FromCompiler$SingleTableColumnResolver.<init>(FromCompiler.java:231) >>> at >>> org.apache.phoenix.compile.FromCompiler.getResolverForMutation(FromCompiler.java:207) >>> at >>> org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:248) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:487) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:478) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:279) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:272) >>> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:270) >>> at >>> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1052) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1$$anonfun$apply$1.apply(SmartSink.scala:194) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1$$anonfun$apply$1.apply(SmartSink.scala:175) >>> at scala.collection.Iterator$class.foreach(Iterator.scala:727) >>> at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1.apply(SmartSink.scala:175) >>> at >>> com.origins.platform.connectors.smartSink.SmartSink$$anonfun$loadData$1.apply(SmartSink.scala:169) >>> at >>> org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1.apply(RDD.scala:773) >>> at >>> org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1.apply(RDD.scala:773) >>> at >>> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1314) >>> at >>> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1314) >>> at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61) >>> at org.apache.spark.scheduler.Task.run(Task.scala:56) >>> at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:196) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: java.lang.IllegalAccessError: >>> com/google/protobuf/HBaseZeroCopyByteString >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl$7.call(ConnectionQueryServicesImpl.java:1265) >>> at >>> org.apache.phoenix.query.ConnectionQueryServicesImpl$7.call(ConnectionQueryServicesImpl.java:1258) >>> at org.apache.hadoop.hbase.client.HTable$17.call(HTable.java:1571) >>> at java.util.concurrent.FutureTask.run(FutureTask.java:262) >>> ... 3 more >>> >>> >> > > > -- > Best regards, > > - Andy > > Problems worthy of attack prove their worth by hitting back. - Piet Hein > (via Tom White) >