【问题标题】:Is "bigtable-hbase-beam" compatible with beam java SDK 2.5?“bigtable-hbase-beam”是否与 beam java SDK 2.5 兼容?
【发布时间】: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

似乎找不到Preconditionshttps://github.com/GoogleCloudPlatform/cloud-bigtable-client/blob/c87f8aef59320f240697fb015dbbc7142a2a679f/bigtable-dataflow-parent/bigtable-hbase-beam/src/main/java/com/google/cloud/bigtable/beam/CloudBigtableConfiguration.java#L143

我们遇到了 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 时我仍然遇到同样的错误。

【问题讨论】:

标签: google-cloud-dataflow google-cloud-bigtable


【解决方案1】:

这是 bigtable-hbase-beam 中的一个错误。 Here's the proposed fix.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    相关资源
    最近更新 更多