I have an HBase cluster comprised of 1 master, and 3 region servers. Zookeeper is running on the master. I have an sql script to create a phoenix view for an underlying HBase table. To date, most of my work has been on a pseudo-distributed HBase node where I ran the sql script on the single node. What is the proper way to deploy the view in a cluster environment? Do I run it on the master only? Do I run it on each of the region servers? I ask because I am running into problems. The query fails with this error:
Dec 18 20:31:22 Caused by: java.sql.SQLException: java.util.concurrent.ExecutionException: java.lang.Exception: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name ServerCachingService in region asset_metadata,,1418927599874.079e3fb502b8e2d5b35166a5acc554be. Dec 18 20:31:22 #011at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:5616) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3322) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3304) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29591) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2026) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:98) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:114) Dec 18 20:31:22 #011at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:94) Dec 18 20:31:22 #011at java.lang.Thread.run(Unknown Source) Dec 18 20:31:22 #011at org.apache.phoenix.cache.ServerCacheClient.addServerCache(ServerCacheClient.java:247) ~[phoenix-core-4.2.1.jar:4.2.1] Dec 18 20:31:22 #011at org.apache.phoenix.join.HashCacheClient.addHashCache(HashCacheClient.java:78) ~[phoenix-core-4.2.1.jar:4.2.1] Dec 18 20:31:22 #011at org.apache.phoenix.execute.HashJoinPlan$HashSubPlan.execute(HashJoinPlan.java:370) ~[phoenix-core-4.2.1.jar:4.2.1] Dec 18 20:31:22 #011at org.apache.phoenix.execute.HashJoinPlan$1.call(HashJoinPlan.java:142) ~[phoenix-core-4.2.1.jar:4.2.1] Dec 18 20:31:22 #011at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.7.0_51] Dec 18 20:31:22 #011... 3 more Dec 18 20:31:22 Caused by: java.util.concurrent.ExecutionException: java.lang.Exception: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: No registered coprocessor service found for name ServerCachingService in region asset_metadata,,1418927599874.079e3fb502b8e2d5b35166a5acc554be. This environment had Phoenix 4.2.1. I am now trying to install 4.2.2. I recreated the underlying HBase tables before defining the view. I wanted to create the view again on the region server, but ran into a problem with one of the tables. Sqlline.py would hang trying to drop the view. I can view table for other tables. Any information would be helpful. Thanks, -Jerry
