将Phoenix与Hbase单机版一起使用会引发NoSuchMethodError

将Phoenix与Hbase单机版一起使用会引发NoSuchMethodError,hbase,phoenix,Hbase,Phoenix,我已经下载了适用于Hbase(1.1)和Phoenix(适用于Hbase 1.1)的tar.gz包 在独立模式下设置hbase是可行的,我可以进入hbase外壳 接下来,我将phoenix目录中的所有.jar文件放入Hbase的lib文件夹 但是,每次尝试启动SQLshell时,都会出现以下错误。 我一整天都在做这件事,现在都看不见自己了 Phoenix网站上的安装说明非常简短,他们基本上说,复制JAR,运行.py脚本 更新:如果有人遇到同样的问题,我还没有设法解决这个问题,但是尝试一台新的机器

我已经下载了适用于Hbase(1.1)和Phoenix(适用于Hbase 1.1)的tar.gz包

在独立模式下设置hbase是可行的,我可以进入hbase外壳

接下来,我将phoenix目录中的所有.jar文件放入Hbase的lib文件夹

但是,每次尝试启动SQLshell时,都会出现以下错误。 我一整天都在做这件事,现在都看不见自己了

Phoenix网站上的安装说明非常简短,他们基本上说,复制JAR,运行.py脚本

更新:如果有人遇到同样的问题,我还没有设法解决这个问题,但是尝试一台新的机器对我来说很有效。所以可能是某个地方的一些相互冲突的库

org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:6154) 位于org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1692) 位于org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1674) 位于org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:31447) 位于org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2031) org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130) 位于org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107) 运行(Thread.java:745) 原因:java.lang.NoSuchMethodError:org.apache.hadoop.hbase.coprocessor.RegionProcessorEnvironment.getRegion()Lorg/apache/hadoop/hbase/regionserver/Region; 位于org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1054) ... 10多 位于org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1196) 位于org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213) 位于org.apache.hadoop.hbase.ipc.AbstractRpcClient$blockingRpcChannel实现.callBlockingMethod(AbstractRpcClient.java:287) 位于org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:32675)
在org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1615)

不要将所有phoenix JAR复制到
hbase
。使用此链接进行安装:

现在在终端中,转到phoenix目录(从tar.gz中提取),然后运行以下命令:

user@user:~/Downloads/phoenix-4.4.0-HBase-1.1-bin/bin$ ./sqlline.py localhost

希望这对你有帮助

我最终将所有jar放在hbase lib文件夹中,完全是出于失望,仅仅添加server/client/../jar是不起作用的,对我来说会产生相同的结果。你有没有找到解决方案?我也有同样的问题,我想我没有。我转向了Hbase 1.0.0(Apache,而不是cloudera或任何东西)和匹配的Phoenix版本。通过复制正确的jar,该方法立即起作用。sqlline.py localhost:2181:/hbase已按其应有的方式连接
user@user:~/Downloads/phoenix-4.4.0-HBase-1.1-bin/bin$ ./sqlline.py localhost