【问题标题】:Bigtable CSV importBigtable CSV 导入
【发布时间】:2016-03-10 08:03:06
【问题描述】:

我在多个文件(存储在存储桶中)中有一个大型 csv 数据集 (>5TB),我需要将其导入 Google Bigtable。文件格式为:

行键,s1,s2,s3,s4
文本,整数,整数,整数,整数
...

有一个带有 hbase 的 importtsv 函数会很完美,但是在 Windows 中使用 Google hbase shell 时似乎不可用。可以使用这个工具吗?如果没有,实现这一目标的最快方法是什么?我对 hbase 和谷歌云没有什么经验,所以一个简单的例子会很棒。我见过一些使用 DataFlow 的类似示例,但除非必要,否则我不希望学习如何执行此操作。

谢谢

【问题讨论】:

    标签: csv bigtable google-cloud-bigtable


    【解决方案1】:

    将这么大的内容导入 Cloud Bigtable 的理想方法是将您的 TSV 放在 Google Cloud Storage 上。

    • gsutil mb <your-bucket-name>
    • gsutil -m cp -r <source dir> gs://<your-bucket-name>/

    然后使用Cloud Dataflow

    1. 使用HBase shell 创建表、列族和输出列。

    2. 编写一个小的 Dataflow 作业来读取所有文件,然后创建一个键,然后写入表。 (请参阅此example 以开始使用。)

    更简单的方法是:(注 - 未经测试)

    • 将文件复制到 Google Cloud Storage
    • 使用Google Cloud Dataproc example 展示了如何创建集群和连接 Cloud Bigtable。
    • ssh 给您的集群主服务器 - wordcount-mapreduce 示例中的脚本将接受 ./cluster ssh
    • 使用 HBase TSV importer 启动 Map Reduce 作业。

      hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c <tablename> gs://<your-bucket-name>/<dir>/**

    【讨论】:

    • 谢谢你。我能够得到第二个选项来工作。请问Bigtable的硬盘选项什么时候可以使用?
    • 正在进行中——应该是第一季度中后期。
    • 对使用这种技术的人的大警告。在浪费了很多钱之后(谷歌 - 想给我退款,因为没有显示任何错误?:)),请注意,如果您使用 importtsv 与来自谷歌存储压缩的文本文件(即使用 gsutil -z 上传)然后 importtsv说导入成功,但实际上在每个文件中都有一定数量的数据后不导入而失败。我在导入超过 4 TB 的数据后发现了这一点,并且必须重新启动,因为我只用较小的文件进行了测试:( 使用未压缩的文本数据似乎(到目前为止)工作正常。
    • @mattrix – 很抱歉给您带来不便,并感谢您提供详细信息。请与我联系,我是 Cloud Bigtable 的 PM。你可以在 Twitter、LinkedIn、GitHub、Slack 等上找到我。
    • 我按照使用 Dataflow 的步骤进行操作,并且能够使其正常工作。我写了一个更详细的解释,并在 Github 上有一个 Dataflow 作业,您可以使用它来简化此操作。在这里查看:cloud.google.com/community/tutorials/cbt-import-csv
    【解决方案2】:

    我创建了一个bug on the Cloud Bigtable Client project 来实现一个做importtsv 的方法。

    即使我们可以让importtsv 工作,在您自己的机器上设置 Bigtable 也可能需要一些工作。导入这么大的文件对于单台机器来说有点麻烦,所以通常需要分布式作业(Hadoop 或 Dataflow),所以我不确定从你的机器上运行该作业的效果如何。

    【讨论】:

    • 感谢您的回复。我认为您正在消除我的一些困惑-我根本不习惯这种环境。我希望您可以使用集群(3 个节点)在 Google Cloud 而不是本地机器上运行 importtsv。这需要分布式工作吗?理想情况下,它会使用开发人员控制台中的 Google Cloud Shell,但如果不是,则使用 Google hbase shell。
    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多