加快谷歌云存储传输到s3

Posted

技术标签:

【中文标题】加快谷歌云存储传输到s3【英文标题】:Speed up google Cloud storage transfer to s3 【发布时间】:2017-12-30 08:54:49 【问题描述】:

我需要每天将大量数据从谷歌存储导出到 s3(几百 GB)。由于 gsutil rsync 似乎是唯一的方法,我想加快速度。

从 gs 到 s3 的同步速度太慢了,因为文档本身说“因为跨提供商 gsutil 数据传输流过运行 gsutil 的机器......”。 因此,它从触发 rsync 命令的机器下载和上传数据。 如果有人做过类似的事情,请告诉我。

“rsync -m”也无济于事。

更好的机器会改善结果吗? 我们可以使用多台机器并行运行 rsync 以加快速度吗?

谢谢!

【问题讨论】:

您说“导出大块”,但随后您还谈到了使用 rsync... 这似乎是在两个不是文件系统的事物之间同步的一种非常低效的方式。传输工作的真正性质是什么?为什么要每天传输大块? (假设您知道 GC 和 AWS 网络都不允许您免费导出数据……) 你说的完全正确。只是在 GS 中有一个实体 E1,我们必须从中提取数据(有很多这样的源实体,而不仅仅是 GS)。处理端实体 P1..Pn 是位于 EC2 上的 EMR - 一切 AWS,所以共同点是 s3 中用于处理端的数据。编写 Spark 作业可能会有所帮助,但它本质上必须做类似的事情,即跨云移动数据 【参考方案1】:

如果您从 Compute Engine(而不是从您本地的机器)运行 gsutil rsync 命令,这将避免使用从 Google 到您的本地然后从您的本地到 Amazon 的额外网络带宽。

【讨论】:

或者在EC2上运行。 嘿迈克,是的,Compute Engine 是有道理的,但现在我们在 EC2 上拥有所有其他基础设施,所以不能那样做。 @Michael-sqlbot,我们在 EC2 本身上运行它。它改进了使用更大的 ec2 实例 - 具有更多内核、RAM 和 I/0。我一直在寻找一种比扩展机器硬件更好的方法。 另外,我有两个疑问: 1. 增加运行 'gsutil rsync' 的磁盘大小会提高速度吗? 2. 我们可以同时在一组机器上运行 gsutil rsync 来创建某种并行性吗? 是的,您可以跨多台机器运行 gsutil 以增加并行度;见cloud.google.com/storage/docs/gsutil/commands/…

以上是关于加快谷歌云存储传输到s3的主要内容,如果未能解决你的问题,请参考以下文章

将文件从 AWS s3 (SSE) 存储桶复制到谷歌云

如何使用 gsutil 通过 http 链接从谷歌云存储下载到 AWS 实例或 s3 存储桶?

从谷歌云存储到 s3 的 gsutil rsync 挂在大文件上

如何从能够搜索的谷歌云存储对象中获取视频流

如何使用多个工作人员加快批量导入谷歌云数据存储的速度?

将缓冲区上传到谷歌云存储