【问题标题】:GCP Dataproc: Poor network bandwidth using storage connectorGCP Dataproc:使用存储连接器的网络带宽不佳
【发布时间】:2018-10-28 21:06:33
【问题描述】:

更新

当使用 DataFrame 加载文件时,我获得了非常出色的性能。还没有机会研究为什么会这样,但是像这样阅读然后转换为 RDD 是我迄今为止找到的最佳解决方案。

sparkSession.read.text("gs://bucket/some/sub/directory/prefix*")

我正在尝试将 GCS 存储桶中的文件简单地读取到 Dataproc Spark 中,然后插入到 Hive 表中。从存储桶下载文件时,我的网络带宽非常差(最大 1MB/s)。

集群:3 x n1-standard-4(一个为主)。

Bucket 包含 1440 个 GZIPed 项目,大约每个 4MB。

我正在使用

加载到火花中
sc.textFile("gs://bucket/some/sub/directory/prefix*")

我的 dataproc 集群和 GCS 存储桶位于同一区域/地区。存储桶仅是区域性的(不是多区域性的)。

我观察到增加集群的大小会增加我的最大网络带宽,但我不想为了获得不错的网络带宽而使用大型集群。

如果我要使用 gsutil cp(在 dataproc 主虚拟机实例上运行)下载相同的数据,则只需大约 30 秒。

是否缺少某些设置,或者 sc.textFile(...) 方法对于 GCS 非常不理想?

谢谢

【问题讨论】:

  • 您在该 spark 应用程序中有多少个 spark 核心?据我了解,您的输入将被转换为具有 1440 个分区的 RDD(因为 gzip 不可拆分),并且这些 1440 个任务将在您可用的 spark 核心上安排。对于您规模的集群,它可能是 8 个核心,即 8 个并行任务,因此总时间约为 1400/8=180 次执行一个任务。
  • 我已经用各种不同大小的集群运行它,随着内核的增加,性能似乎呈线性增长,但基本速度太慢了。请参阅上面的编辑以发布迄今为止我找到的最佳解决方案。
  • 您可能希望使用对 IO 性能有显着改进的最新 GCS 连接器 1.9.6 (github.com/GoogleCloudPlatform/bigdata-interop/releases/tag/…)。您可以使用初始化操作更新 Dataproc 集群上的 GCS 连接器:github.com/GoogleCloudPlatform/dataproc-initialization-actions/…

标签: apache-spark hadoop google-cloud-platform google-cloud-storage google-cloud-dataproc


【解决方案1】:

这篇博文应该回答一些关于 RDD 与 DataFrame 性能差异的问题: https://www.linkedin.com/pulse/apache-spark-rdd-vs-dataframe-dataset-chandan-prakash

更笼统地说:

  • GCS IO 性能可能因负载而异
  • IO 性能可能因 GCE 区域 VM 所在的不同而不同
  • IO 取决于 CPU 数量和磁盘大小

在我自己对这篇文章的测试中,gsutil cp 到本地磁盘的速度最慢,而各种分布式命令在与您类似的数据集(1440 个 4mb 随机数据的文本文件)上明显更快:

import timeit
i1 = sc.textFile("gs://my-bucket/input/*")

// Ordered by fastest first to slowest last:
timeit.timeit(lambda: spark.read.text("gs://.../input/*").count(), number=1)

timeit.timeit(lambda: i1.count(), number=1)

timeit.timeit(lambda: spark.read.text("gs://.../input/*").rdd.count(), number=1)

【讨论】:

  • 这篇博文很好读,谢谢!我还注意到 gsutil -m cp (多线程副本)实际上非常快。感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 2012-03-05
  • 1970-01-01
  • 2021-10-11
  • 2020-03-02
  • 2015-11-30
相关资源
最近更新 更多