"bigtable-hbase-beam" 与 beam java SDK 2.5 兼容吗?
Is "bigtable-hbase-beam" compatible with beam java SDK 2.5?
我正在关注此文档(特别是写入 Cloud Bigtable
):
https://cloud.google.com/bigtable/docs/hbase-dataflow-java
(我正在尝试 1.3.0 和 1.4.0 两个版本。)
之前运行一个pipeline,这一步报错:
CloudBigtableScanConfiguration config = new CloudBigtableScanConfiguration.Builder()
.withProjectId("project-id")
.withInstanceId("instance-id")
.withTableId("table")
.build();
(请注意,文档没有说明如何为 'writing' 部分创建此 'config' 实例,但我尝试了以上两种方法(从 'reading' 部分复制,然后'.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 连接器是我们经常使用的一项重要功能。
哪些 Beam SDK (java) bigtable-hbase-beam 1.3.0
兼容,如果还不兼容 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 相同的错误。
这是 bigtable-hbase-beam 中的错误。 Here's the proposed fix.
我正在关注此文档(特别是写入 Cloud Bigtable ): https://cloud.google.com/bigtable/docs/hbase-dataflow-java (我正在尝试 1.3.0 和 1.4.0 两个版本。)
之前运行一个pipeline,这一步报错:
CloudBigtableScanConfiguration config = new CloudBigtableScanConfiguration.Builder()
.withProjectId("project-id")
.withInstanceId("instance-id")
.withTableId("table")
.build();
(请注意,文档没有说明如何为 'writing' 部分创建此 'config' 实例,但我尝试了以上两种方法(从 'reading' 部分复制,然后'.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 连接器是我们经常使用的一项重要功能。
哪些 Beam SDK (java) bigtable-hbase-beam 1.3.0
兼容,如果还不兼容 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 相同的错误。
这是 bigtable-hbase-beam 中的错误。 Here's the proposed fix.