【发布时间】:2018-07-05 23:30:33
【问题描述】:
我正在关注此文档(特别是写入 Cloud Bigtable ): https://cloud.google.com/bigtable/docs/hbase-dataflow-java (我正在尝试 1.3.0 和 1.4.0 两个版本。)
在运行管道之前,这一步会报错:
CloudBigtableScanConfiguration config = new CloudBigtableScanConfiguration.Builder()
.withProjectId("project-id")
.withInstanceId("instance-id")
.withTableId("table")
.build();
(请注意,文档没有说明如何为“写作”部分创建此“配置”实例,但我尝试了上述两种方法(从“阅读”部分复制,然后删除了“.withScan()”行以及CloudBigtableTableConfiguration.Builder而不是ScanConfig。结果与我的结果相同。)
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/beam/sdk/repackaged/com/google/common/base/Preconditions
at com.google.cloud.bigtable.beam.CloudBigtableConfiguration.setValue(CloudBigtableConfiguration.java:142)
at com.google.cloud.bigtable.beam.CloudBigtableConfiguration.<init>(CloudBigtableConfiguration.java:137)
at com.google.cloud.bigtable.beam.CloudBigtableTableConfiguration.<init>(CloudBigtableTableConfiguration.java:116)
at com.google.cloud.bigtable.beam.CloudBigtableScanConfiguration.<init>(CloudBigtableScanConfiguration.java:178)
at com.google.cloud.bigtable.beam.CloudBigtableScanConfiguration$Builder.build(CloudBigtableScanConfiguration.java:160)
at com.moloco.dataflow2.Main.main(Main.java:60)
Caused by: java.lang.ClassNotFoundException: org.apache.beam.sdk.repackaged.com.google.common.base.Preconditions
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
我们遇到了 Beam SDK 2.0/2.1/2.4 的问题,因此我们正在尝试从 1.9.1 迁移到 2.5,而 Bigtable 连接器是我们经常使用的一项重要功能。
bigtable-hbase-beam 1.3.0 与哪些 Beam SDK (java) 兼容,如果尚未与 2.5 兼容?
除其他外,我们还使用了以下内容:
compile group: 'com.google.cloud.bigtable', name: 'bigtable-hbase-beam', version: '1.3.0'
compile 'com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:2.5.0'
也尝试了compile 'org.apache.beam:beam-runners-google-cloud-dataflow-java:2.5.0',但出现同样的错误。
更新: Gradle 依赖树表明连接器 sdk 需要 beam 2.3+,所以我尝试了 2.3 & 2.4。不幸的是,它与我们代码的其他部分冲突,并且一个已知问题似乎阻碍了我们(DataFlow Runner Fails after upgrading to Beam 2.4.0)。 本来我问的是1.3.0的版本(不知道有1.4.0可用);但是在使用 hbase-bigtable 1.4.0 和 beam sdk 2.5 时我仍然遇到同样的错误。
【问题讨论】:
-
我在 Cassandra JAR 中遇到过类似的情况。有没有人设法解决这个问题?在这里发布:stackoverflow.com/questions/55254740/…
标签: google-cloud-dataflow google-cloud-bigtable