3

Hadoop 2 (HBase 1.0.2 クライアント) ( https://github.com/thinkaurelius/titan/wiki/Downloadsで入手可能) で Titan 1.0.0 に接続しようとしています。その HBase クライアントを使用して、Google Cloud Bigtable サービスを使用しています。

この手順に従って、GCE インスタンスの HBase シェルから Bigtable に正常に接続できました。これはテンプレートによるもので、 (Oracle JDK SE 1.8.0_60)hbase-site.xml用の Bigtable jar をダウンロードしました。ALPN_VERSION=8.1.5.v20150921

<configuration>
  <property>
    <name>hbase.client.connection.impl</name>
    <value>com.google.cloud.bigtable.hbase1_0.BigtableConnection</value>
  </property>
  <property>
    <name>google.bigtable.cluster.name</name>
    <value>[YOUR-CLUSTER-ID]</value>
  </property>
  <property>
    <name>google.bigtable.project.id</name>
    <value>[YOUR-PROJECT-ID]</value>
  </property>
  <property>
    <name>google.bigtable.zone.name</name>
    <value>[YOUR-ZONE-NAME]</value>
  </property>
</configuration>

次に、ディレクトリにコピーhbase-site.xmltitan-1.0.0-hadoop2/conf、Bigtable jar をtitan-1.0.0-hadoop2/libフォルダーにコピーしました。

次に、titan-1.0.0-hadoop2フォルダーで./run/gremlin.sh、コンソールを実行して開始します。

したがって、HBase クライアント (Bigtable クラスターを指すように構成) を使用して接続を作成しようとすると...

TitanGraph graph = TitanFactory.build().set("storage.backend", "hbase").open();

...Gremlin コンソールで次の例外が発生します。

com.google.cloud.bigtable.hbase1_0.BigtableConnection cannot be cast to org.apache.hadoop.hbase.client.ClusterConnection

スタック トレースは次のとおりです。

gremlin> TitanFactory.build().set("storage.backend", "hbase").open();

SLF4J: クラスパスに複数の SLF4J バインディングが含まれています。
SLF4J: [jar:file:/usr/lib/titan-1.0.0-hadoop2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] でバインドが見つかりました
SLF4J: [jar:file:/usr/lib/titan-1.0.0-hadoop2/lib/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] でバインドが見つかりました
SLF4J: 説明については、http://www.slf4j.org/codes.html#multiple_bindings を参照してください。
SLF4J: 実際のバインディングのタイプは [org.slf4j.impl.Log4jLoggerFactory] ​​です
13:42:24 警告 org.apache.hadoop.util.NativeCodeLoader - プラットフォームのネイティブ Hadoop ライブラリをロードできません... 該当する場合は組み込み Java クラスを使用します
13:42:25 警告 com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager - getDeployment() 中の予期しない例外
java.lang.ClassCastException: com.google.cloud.bigtable.hbase1_0.BigtableConnection を org.apache.hadoop.hbase.client.ClusterConnection にキャストできません
    org.apache.hadoop.hbase.client.HBaseAdmin で。(HBaseAdmin.java:225)
    com.thinkaurelius.titan.diskstorage.hbase.HConnection1_0.getAdmin(HConnection1_0.java:28) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getAdminInterface (HBaseStoreManager.java:960) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.ensureTableExists (HBaseStoreManager.java:747) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getLocalKeyPartition (HBaseStoreManager.java:556) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getDeployment (HBaseStoreManager.java:347) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getFeatures (HBaseStoreManager.java:389) で
    com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.(GraphDatabaseConfiguration.java:1321) で
    com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:94) で
    com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:84) で
    com.thinkaurelius.titan.core.TitanFactory$Builder.open(TitanFactory.java:139) で
    com.thinkaurelius.titan.core.TitanFactory$Builder$open$0.call (不明なソース) で
    org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) で
    org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) で
    org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:114) で
    groovysh_evaluate.run で (groovysh_evaluate:3)
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.Interpreter.evaluate (Interpreter.groovy:69) で
    org.codehaus.groovy.tools.shell.Groovysh.execute (Groovysh.groovy:185) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:119) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.ShellRunner.work (ShellRunner.groovy:94) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy) で
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
    java.lang.reflect.Method.invoke(Method.java:497) で
    org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) で
    groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) で
    groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1207) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:130) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:150) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.work (InteractiveShellRunner.groovy:123) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.ShellRunner.run (ShellRunner.groovy:58) で
    atorg.codehaus.groovy.tools.shell.interactiveshellrunner.super $ 2 $ $ $(InteractiveShellrunner.groovy)
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
    java.lang.reflect.Method.invoke(Method.java:497) で
    org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) で
    groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) で
    groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1207) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:130) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:150) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.run (InteractiveShellRunner.groovy:82) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.apache.tinkerpop.gremlin.console.Console で。(Console.groovy:144)
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.apache.tinkerpop.gremlin.console.Console.main (Console.groovy:303) で
13:42:25 警告 com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager - getDeployment() 中の予期しない例外
java.lang.ClassCastException: com.google.cloud.bigtable.hbase1_0.BigtableConnection を org.apache.hadoop.hbase.client.ClusterConnection にキャストできません
    org.apache.hadoop.hbase.client.HBaseAdmin で。(HBaseAdmin.java:225)
    com.thinkaurelius.titan.diskstorage.hbase.HConnection1_0.getAdmin(HConnection1_0.java:28) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getAdminInterface (HBaseStoreManager.java:960) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.ensureTableExists (HBaseStoreManager.java:747) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getLocalKeyPartition (HBaseStoreManager.java:556) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getDeployment (HBaseStoreManager.java:347) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getFeatures (HBaseStoreManager.java:389) で
    com.thinkaurelius.titan.diskstorage.Backend.getStandaloneGlobalConfiguration (Backend.java:438) で
    com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.(GraphDatabaseConfiguration.java:1322) で
    com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:94) で
    com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:84) で
    com.thinkaurelius.titan.core.TitanFactory$Builder.open(TitanFactory.java:139) で
    com.thinkaurelius.titan.core.TitanFactory$Builder$open$0.call (不明なソース) で
    org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) で
    org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) で
    org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:114) で
    groovysh_evaluate.run で (groovysh_evaluate:3)
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.Interpreter.evaluate (Interpreter.groovy:69) で
    org.codehaus.groovy.tools.shell.Groovysh.execute (Groovysh.groovy:185) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:119) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.ShellRunner.work (ShellRunner.groovy:94) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy) で
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
    java.lang.reflect.Method.invoke(Method.java:497) で
    org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) で
    groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) で
    groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1207) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:130) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:150) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.work (InteractiveShellRunner.groovy:123) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.ShellRunner.run (ShellRunner.groovy:58) で
    atorg.codehaus.groovy.tools.shell.interactiveshellrunner.super $ 2 $ $ $(InteractiveShellrunner.groovy)
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
    java.lang.reflect.Method.invoke(Method.java:497) で
    org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) で
    groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) で
    groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1207) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:130) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:150) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.run (InteractiveShellRunner.groovy:82) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.apache.tinkerpop.gremlin.console.Console で。(Console.groovy:144)
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.apache.tinkerpop.gremlin.console.Console.main (Console.groovy:303) で
13:42:25 警告 com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager - getDeployment() 中の予期しない例外
java.lang.ClassCastException: com.google.cloud.bigtable.hbase1_0.BigtableConnection を org.apache.hadoop.hbase.client.ClusterConnection にキャストできません
    org.apache.hadoop.hbase.client.HBaseAdmin で。(HBaseAdmin.java:225)
    com.thinkaurelius.titan.diskstorage.hbase.HConnection1_0.getAdmin(HConnection1_0.java:28) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getAdminInterface (HBaseStoreManager.java:960) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.ensureTableExists (HBaseStoreManager.java:747) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getLocalKeyPartition (HBaseStoreManager.java:556) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getDeployment (HBaseStoreManager.java:347) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.getFeatures (HBaseStoreManager.java:389) で
    com.thinkaurelius.titan.diskstorage.common.AbstractStoreManager.getMetaDataSchema (AbstractStoreManager.java:44) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseKeyColumnValueStore.(HBaseKeyColumnValueStore.java:67) で
    com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.openDatabase (HBaseStoreManager.java:446) で
    com.thinkaurelius.titan.diskstorage.keycolumnvalue.KeyColumnValueStoreManager.openDatabase (KeyColumnValueStoreManager.java:29) で
    com.thinkaurelius.titan.diskstorage.Backend.getStandaloneGlobalConfiguration (Backend.java:449) で
    com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.(GraphDatabaseConfiguration.java:1322) で
    com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:94) で
    com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:84) で
    com.thinkaurelius.titan.core.TitanFactory$Builder.open(TitanFactory.java:139) で
    com.thinkaurelius.titan.core.TitanFactory$Builder$open$0.call (不明なソース) で
    org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) で
    org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110) で
    org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:114) で
    groovysh_evaluate.run で (groovysh_evaluate:3)
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.Interpreter.evaluate (Interpreter.groovy:69) で
    org.codehaus.groovy.tools.shell.Groovysh.execute (Groovysh.groovy:185) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:119) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.ShellRunner.work (ShellRunner.groovy:94) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy) で
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
    java.lang.reflect.Method.invoke(Method.java:497) で
    org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) で
    groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) で
    groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1207) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:130) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:150) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.work (InteractiveShellRunner.groovy:123) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.codehaus.groovy.tools.shell.ShellRunner.run (ShellRunner.groovy:58) で
    atorg.codehaus.groovy.tools.shell.interactiveshellrunner.super $ 2 $ $ $(InteractiveShellrunner.groovy)
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
    java.lang.reflect.Method.invoke(Method.java:497) で
    org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) で
    groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) で
    groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1207) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:130) で
    org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:150) で
    org.codehaus.groovy.tools.shell.InteractiveShellRunner.run (InteractiveShellRunner.groovy:82) で
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.apache.tinkerpop.gremlin.console.Console で。(Console.groovy:144)
    atorg.codehaus.groovy.vmplugin.v7.indyinterface.selectmethod(indyinterface.java:215)
    org.apache.tinkerpop.gremlin.console.Console.main (Console.groovy:303) で
com.google.cloud.bigtable.hbase1_0.BigtableConnection は org.apache.hadoop.hbase.client.ClusterConnection にキャストできません

他のコンテキストで同じ例外を持つ他の質問を見つけました: HBase REST api を使用して Google Bigtable に接続できません
そのパッチは、Titan で発生しているこの例外も解決しますか?

4

1 に答える 1

3

Titan はメンテナンスされなくなりました。ただし、JanusGraph (Titan のフォーク) をGoogle Cloud Bigtableと一緒に使用できます。詳細については、次のガイドを参照してください。

GitHub は、JanusGraph リリースをホストします。

于 2017-05-20T19:10:03.647 に答える