支持Cloud Bigtable作为云数据流中的接收器

时间:2015-06-09 12:40:32

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

是否有计划让Cloud Dataflow将数据写入Cloud Bigtable?它甚至可能吗?

添加自定义Sink来处理IO可能是一个干净的选择。

作为一种解决方法,我尝试使用简单的DoFn连接到Bigtable(同一个项目)。在startBundle步骤中打开连接和表格,然后在finishBundle中关闭它们。

此外,我将bigtable-hbase jar (0.1.5)添加到类路径中,并将hbase-site.xml的修改版本添加到资源文件夹中。

在云端运行时,我收到NPN/ALPN extensions not installed例外。

在本地运行时,尽管已将ComputeEngineCredentials cannot find the metadata server.设置为生成的json密钥文件,但仍会收到GOOGLE_APPLICATION_CREDENTIALS的异常。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

我们现在拥有Cloud Bigtable / Dataflow连接器。您可以在以下位置查看更多信息:https://cloud.google.com/bigtable/docs/dataflow-hbase

答案 1 :(得分:0)

Cloud BigTable需要NPN / ALPN网络jar。目前尚未在Dataflow工作器上安装此功能。因此,直接从ParDo访问Cloud BigTable将无法正常工作。

一种可能的解决方法是使用HBase REST API设置REST服务器以访问Dataflow之外的VM上的Cloud Bigtable。 These instructions可能有所帮助。

然后,您可以向此REST服务器发出REST请求。如果您发送大量请求(即处理大量数据并需要设置REST服务器的多个实例并在它们之间实现负载平衡),这可能会有些复杂。