1
看来我无法从AppEngine上运行的Java类创建连接。从Google App Engine连接到云端Bigtable
我使用下面的库/依赖性:
<dependency>
<groupId>com.google.cloud.bigtable</groupId>
<artifactId>bigtable-hbase-1.1</artifactId>
<version>0.1.9</version>
</dependency>
和下面几行代码:
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.*;
Configuration conf = HBaseConfiguration.create();
connection = ConnectionFactory.createConnection(conf);
看来,ConnectionFactory.createConnection()
方法试图使用受限制的类。
你能否帮助我们解释我们如何在GAE上使用它?
Caused by: java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory is a restricted class. Please see the Google App Engine developer's guide for more details.
at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:52)
at org.apache.hadoop.util.ReflectionUtils.<clinit>(ReflectionUtils.java:137)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:65)
at org.apache.hadoop.hbase.security.UserProvider.instantiate(UserProvider.java:45)
at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:214)
at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119)
at org.energyworx.datastore.BigTableTSStorage.<init>(BigTableTSStorage.java:104)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:379)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373)
... 71 more
嗯,只需重新阅读您的文章,看到您提到“只能在云中运行”,我如何在本地运行它以进行开发?这还不支持?由于Jetty不支持GAE API,因此我们无法使用该API进行测试。 –
最新的gcloud仅适用于谷歌环境,但遗憾的是,它尚未支持Bigtable用于性能的基于gRPC的API--这就是为什么我们需要一个定制运行时,这是我们基于标准的,但添加了alpn -boot。 可以将您的gcloud回滚到支持自定义w/GAE API本地调试的先前版本。 –
沙盒GAE如何?我不认为那个示例在那里工作... – the1plummie