2015-05-08 2 views
0

Следуя this example, запуск тестового скрипта «python put_get_with_client.py» приводит к ошибке 400 («Плохой запрос»).Невозможно подключиться к Google Bigtable с использованием HBase REST api

Bad запрос java.lang.ClassCastException: org.apache.hadoop.hbase.client.BigtableConnection не может быть приведен к org.apache.hadoop.hbase.client.ClusterConnection в org.apache.hadoop.hbase .client.ConnectionManager.createConnection (ConnectionManager.java:410) at org.apache.hadoop.hbase.client.ConnectionManager.createConnection (ConnectionManager.java:370) at org.apache.hadoop.hbase.client.HConnectionManager.createConnection (HConnectionManager.java:197) at org.apache.hadoop.hbase.util.ConnectionCache.getCurrentConnection (ConnectionCache.java:170) at org.apache.hadoop.hbase.util.ConnectionCache.getAdmin (ConnectionCache.java : 124) at org.apache.hadoop.hbase.rest.RESTServlet.getAdmin (RESTServlet.java:102) по адресу org.apache.hadoop.hbase.rest.RootResource.getTableList (RootResource.java:64) at org .apache.hadoop.hbase.rest.RootResource.get (RootResource.java:80) на sun.reflect.NativeMethodAccessorImpl.invoke0 (нативный метод) на sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) на sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:606) at com.sun.jersey.spi.container.JavaMethodInvokerFactory $ 1.invoke (JavaMethodInvokerFactory .java: 60) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProv Идер $ 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) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept (RootResourceClassesRule.java:84) at com.sun. jersey.server.impl.application.WebApplicationImpl._handleRequest (WebApplicationImpl.java:1469) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest (WebApplicationImpl.java:1400) на com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest (WebApplicationImpl.java:1349) на com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest (WebApplicationImpl .java: 1339) at com.sun.jersey.spi.container.servlet.WebComponent.service (WebComponent.java:416) at com.sun.jersey.spi.container.servlet.ServletContainer.service (ServletContainer.java : 537) at com.sun.jersey.spi.container.servlet.ServletContainer.service (ServletContainer.java:699) at javax.servlet.http.HttpServlet.service (HttpServlet.java:820) at org.mortbay .jetty.servlet.ServletHolder.handle (ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1221) at org.apache.hadoop.hbase.rest.filter.GzipFilter.doFilter (GzipFilter.java:76) at org.mortbay.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1212) at org .mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:399) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:766) at org.mortbay.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) at org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:549) at org.mortbay.jetty.HttpParser.parseAvailable (HttpParser. java: 212) at org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:410) at org.mortbay.thread. QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java:582)

Итак, я полагаю, что BigtableConnection не реализует интерфейс ClusterConnection? Правильно ли это пример?

+0

Я буду пинговать кого-то на этом - попробуйте ответить вам в ближайшее время. –

+0

Некоторые исправления, которые мы ожидали в 1.0.1 из HBase, не сделали этого. Мы пытаемся разобраться в работе. Кто-то будет публиковать это, когда мы поймем, что мы можем сделать - вероятно, не раньше, чем в понедельник. –

+1

Наши изменения попали к вилке HBase 2.x, но не 1.0.x или 1.x. Мы надеемся открыть исходные изменения (надеюсь, на следующей неделе), а также включить двоичный файл. –

ответ

2

Как уже упоминалось выше, мы отправили исправления в проект Apache HBase, чтобы исправить ReST и Thrift - они также были приняты и интегрированы. Пока мы ждем релиза, который включает их для выпуска, мы выпустили temporary fork of 1.0.1, чтобы помочь вам в этом. Мы удалим эту вилку, как только будут внесены эти изменения.

Смежные вопросы