【问题标题】:How do I pass in the google cloud project to the SHC BigTable connector at runtime?如何在运行时将谷歌云项目传递给 SHC BigTable 连接器?
【发布时间】:2018-05-29 20:03:50
【问题描述】:

我正在尝试从 Spark (Dataproc) 访问 BigTable。我尝试了几种不同的方法,对于我正在尝试做的事情,SHC 似乎是最干净的并且表现良好。

https://github.com/GoogleCloudPlatform/cloud-bigtable-examples/tree/master/scala/bigtable-shc

但是,这种方法要求我将 Google 云项目 ID 放在 hbase-site.xml 中,这意味着我需要使用我在其上运行的每个环境(产品、暂存等)的 spark 代码构建胖 jar 文件的单独版本这是我想避免的。

有没有办法让我在运行时传入谷歌云项目ID?

【问题讨论】:

  • 有趣的问题。一般来说,这个问题更多的是关于 HBase、Spark 和 shc 如何管理这个单独的 hbase-site.xml 版本,而不是与 Cloud Bigtable 集成相关的任何问题。仅供参考,Cloud Bigtable 支持 HBase 2.0.0,它也支持 Spark。
  • @SolomonDuskis 你有没有关于如何使用 hbase2 api 与 bigtable 对话的示例?我可以找到这个:github.com/apache/hbase/blob/master/hbase-spark/src/main/scala/…,但它看起来仍然非常笨重。我只想指向一个 hbase 表,取回一个数据框并从那里工作火花魔法。
  • 很遗憾,我们没有 HBase2 spark 示例。 FWIW,Cloud Bigtable 团队专注于 Dataflow 集成,我们还没有很好的 Spark 集成,至少在示例方面。
  • @SolomonDuskis 我喜欢数据流,我们在来自 pubsub 的流式管道中使用它(这就是数据首先进入 bigtable 的方式),但我也有数据科学家在需要限制的笔记本上工作获取大表数据的前进方式。试图找出一种不笨拙/麻烦的方式让他们使用我们的大表数据。
  • 明白。也许我们的 BigQuery 集成可能会有所帮助:cloud.google.com/bigquery/external-data-bigtable

标签: apache-spark google-cloud-dataproc google-cloud-bigtable


【解决方案1】:

据我所知,SHC 库不允许您通过 hbase 配置(查看 here)。

最简单的方法是运行一个从VM metadata 获取VM 项目ID 并将其设置为hbase-site.xml 的初始化操作。我们正在进行初始化,并为 Bigtable 安装 Hbase 客户端。查看正在进行中的pull request,如果您需要立即编写,这将是一个很好的起点。否则,我预计 PR 将在接下来的几周内合并。

或者,考虑在 SHC 中添加一个选项,以将属性传递给它创建的 HBaseConfiguration。对于更广泛的社区来说,这将是一个有价值的功能。

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2023-01-26
    • 2021-10-05
    • 1970-01-01
    • 2020-03-18
    相关资源
    最近更新 更多