0

按照此示例,运行测试脚本“python put_get_with_client.py”会导致 400 错误(错误请求)。

错误请求 java.lang.ClassCastException: org.apache.hadoop.hbase.client.BigtableConnection 无法在 org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager 中转换为 org.apache.hadoop.hbase.client.ClusterConnection .java:410) 在 org.apache.hadoop.hbase.client.ConnectionManager.createConnection(ConnectionManager.java:370) 在 org.apache.hadoop.hbase.client.HConnectionManager.createConnection(HConnectionManager.java:197) 在 org. org.apache.hadoop.hbase.util.ConnectionCache.getAdmin(ConnectionCache.java:124) 中的 org.apache.hadoop.hbase.rest 中的 apache.hadoop.hbase.util.ConnectionCache.getCurrentConnection(ConnectionCache.java:170)。 org.apache.hadoop.hbase.rest.RootResource.getTableList(RootResource.java:64) 上的 org.apache.hadoop 上的 RESTServlet.getAdmin(RESTServlet.java:102)。hbase.rest.RootResource.get(RootResource.java:80) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) 在 com.sun。 jersey.server.impl.model.method.dispatch.Abs​​tractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) 在 com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) ) 在 com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) 在 com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 在 com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule. java:147) 在 com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 在 com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:第1469章)在com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)在com .sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 在 com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 在 com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 在 com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) 在 javax .servlet.http.HttpServlet.service(HttpServlet.java:820) 在 org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler .java:1221) 在 org.apache.hadoop.hbase.rest.filter.GzipFilter.doFilter(GzipFilter.java:76) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) 在org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) 在 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 在 org.mortbay.jetty.security.SecurityHandler。org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 的句柄(SecurityHandler.java:216) org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) org.mortbay .jetty.Server.handle(Server.java:326) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 在 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 在 org.mortbay.jetty.Server.handle(Server.java: 326) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 在 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser .java:549) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint。在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 运行(SelectChannelEndPoint.java:410)mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 在 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 在 org.mortbay.jetty.Server.handle(Server.java: 326) 在 org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 在 org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser .java:549) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint。在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 运行(SelectChannelEndPoint.java:410)jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org .mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212 ) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run( QueuedThreadPool.java:582)jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org .mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 在 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 在 org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212 ) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run( QueuedThreadPool.java:582)handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) at org.mortbay.jetty .HttpParser.parseAvailable(HttpParser.java:212) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org. mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) at org.mortbay.jetty .HttpParser.parseAvailable(HttpParser.java:212) 在 org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org. mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)404) 在 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 在 org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

那么,我猜 BigtableConnection 没有实现 ClusterConnection 接口?示例正确吗?

4

1 回答 1

2

正如上面评论中提到的,我们已经向 Apache HBase 项目提交了补丁来修复 ReST 和 Thrift——它们也被接受并集成了。在我们等待包含它们的版本发布时,我们已经发布了1.0.1 的临时分支来帮助您解决这个问题。合并这些更改后,我们将立即删除此分叉。

于 2015-05-13T01:28:26.803 回答