Bigtable CSV 导入
Bigtable CSV import
我在多个文件(存储在存储桶中)中有一个大型 csv 数据集 (>5TB),我需要将其导入 Google Bigtable。文件的格式为:
行键、s1、s2、s3、s4
文本、整数、整数、整数、整数
...
有一个 hbase 的 importtsv 函数是完美的,但在 windows 中使用 Google hbase shell 时似乎不可用。可以使用这个工具吗?如果没有,实现这一目标的最快方法是什么?我对 hbase 和 Google Cloud 几乎没有经验,所以一个简单的例子会很棒。我已经看到一些使用 DataFlow 的类似示例,但除非必要,否则我宁愿不学习如何执行此操作。
谢谢
我创建了一个 bug on the Cloud Bigtable Client project 来实现 importtsv
的方法。
即使我们能让 importtsv
工作,在您自己的机器上设置 Bigtable 也可能需要一些工作。导入这么大的文件对于一台机器来说有点复杂,所以通常需要一个分布式作业(Hadoop 或 Dataflow),所以我不确定 运行 你的机器上的作业将如何工作。
将这么大的东西导入 Cloud Bigtable 的理想方法是将 TSV 放在 Google Cloud Storage。
gsutil mb <your-bucket-name>
gsutil -m cp -r <source dir> gs://<your-bucket-name>/
然后使用Cloud Dataflow.
使用 HBase shell 创建 table、列族和输出列。
写一个小的 Dataflow 作业来读取所有文件,然后创建一个键,然后写入 table。 (请参阅此 example 开始。)
更简单的方法是:(注意-未经测试)
- 将您的文件复制到 Google 云存储
- 使用 Google Cloud Dataproc the 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>/**
我在多个文件(存储在存储桶中)中有一个大型 csv 数据集 (>5TB),我需要将其导入 Google Bigtable。文件的格式为:
行键、s1、s2、s3、s4
文本、整数、整数、整数、整数
...
有一个 hbase 的 importtsv 函数是完美的,但在 windows 中使用 Google hbase shell 时似乎不可用。可以使用这个工具吗?如果没有,实现这一目标的最快方法是什么?我对 hbase 和 Google Cloud 几乎没有经验,所以一个简单的例子会很棒。我已经看到一些使用 DataFlow 的类似示例,但除非必要,否则我宁愿不学习如何执行此操作。
谢谢
我创建了一个 bug on the Cloud Bigtable Client project 来实现 importtsv
的方法。
即使我们能让 importtsv
工作,在您自己的机器上设置 Bigtable 也可能需要一些工作。导入这么大的文件对于一台机器来说有点复杂,所以通常需要一个分布式作业(Hadoop 或 Dataflow),所以我不确定 运行 你的机器上的作业将如何工作。
将这么大的东西导入 Cloud Bigtable 的理想方法是将 TSV 放在 Google Cloud Storage。
gsutil mb <your-bucket-name>
gsutil -m cp -r <source dir> gs://<your-bucket-name>/
然后使用Cloud Dataflow.
使用 HBase shell 创建 table、列族和输出列。
写一个小的 Dataflow 作业来读取所有文件,然后创建一个键,然后写入 table。 (请参阅此 example 开始。)
更简单的方法是:(注意-未经测试)
- 将您的文件复制到 Google 云存储
- 使用 Google Cloud Dataproc the 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>/**