改进Bigtable / HBase / Spark工作流程的建议(经济)

时间:2015-11-10 10:08:17

标签: apache-spark google-cloud-storage google-cloud-platform google-cloud-bigtable

我有一个相当小的数据集(5~gb,150万行),目前存储在Bigtable中,并通过HBase API(Scala)访问,目的是使用Spark(dataproc)进行数据分析。

但是,我的预算也很紧张,Bigtable的成本相当高(2~美元/小时),所以我最终要做的就是在需要时删除并重新创建Bigtable集群。 / p>

显而易见的缺点是,由于我的数据的性质,填充新的群集需要相当长的时间。它全部存储在一个大文本文件中作为JSON,填充集群需要40分钟。

所以我要问的是,是否有更好的方法来执行此操作,比如实现某种备份/快照例程?或者根本就不使用Bigtable。我无法在Google云平台上找到任何其他HDFS替代品。

应该注意的是,我对Hadoop和大数据的世界相当新鲜,所以如果我错过了那些显而易见的事情,请原谅我的无知。

3 个答案:

答案 0 :(得分:1)

首先,如果您还没有看到它,我们会展示如何使用Cloud Bigtable with Dataproc。如果这是你想要的,那么应该很容易就能快速填写你的Bigtable。

Bigtable实际上是为1T或更大的数据库而设计的。在5GB大小的情况下,您可能需要考虑MemcacheRedis。使用Redis,您只需要加载一次数据,然后在关闭实例/集群时保存磁盘。

答案 1 :(得分:1)

此外(如果它适合您的用例并且您不需要Bigtable的数据库方面),您可以直接对{{{}中的文件运行Hadoop或Spark作业(如果您愿意,可以使用Google Cloud Dataproc) 3}},这比在Bigtable中存储数据要便宜得多。

有关详细信息,请参阅Google Cloud Storage

答案 2 :(得分:1)

考虑导入json一次,然后通过hadoop将数据导出到序列文件,如下所述:https://cloud.google.com/bigtable/docs/exporting-importing。 hadoop使用的序列文件格式可能比json更有效。