提问者:小点点

Cloud Dataflow的工作原理以及Dataflow Job的管理方式


我最近使用Dataflow对数据进行批次处理作业,遇到了由于IO错误(IOError:设备上没有剩余空间)导致的管道中断。

worker节点上的磁盘扩容解决了这个问题,但是要处理的数据量不是很大,磁盘耗尽的可能性不大。

因此,我想知道Dataflow是如何工作的,以便更好地了解事件。

我的问题如下。

  • Cloud Dataflow的架构是什么?我想了解架构和留档以了解它。
  • 数据流作业在启动前的流程是什么?

我的猜测是管道和作业是在托管库伯内特斯集群上管理的,作业是在用户的VM实例上执行的,因为数据流日志包括kubelet和docker日志。

任何信息将不胜感激。


共1个答案

匿名用户

  1. 云数据流的架构是什么?

Google Cloud Dataflow是Apache Beam运行程序之一,它建立在Google Compute Engine(GCE)之上,即当您运行Dataflow作业时,它会在GCE实例上执行。在作业启动期间,Apache BeamSDK会安装在每个Worker以及您指定的其他库上,然后执行。对于Dataflow作业,您可以指定GCE虚拟机的类型以及硬盘的大小。当然,根据数据处理过程,VM的Worker数量可能会随着时间的推移而变化。

还有一个名为Dataflow Shuffle的功能,可用于混洗阶段,在像GroupByKey这样的转换中,组合在托管服务上执行(当然底部总是有一些VM,但这对您是隐藏的),而不是在Dataflow workerVM上执行。这是混洗可以明显更快。

如果你想了解数据流作业的流程,我建议你通过这个链接。

附加信息

如果您想了解Apache Beam的编程模型,只需单击此处并浏览它。

然后,Google Cloud添加了一个新的多语言数据流(Runner v2)管道,该管道由新的、更快的架构启用。如果您想探索Runner v2,只需单击此处并浏览它。

请找到以下所有链接:

  1. https://cloud.google.com/dataflow/docs/guides/deploying-a-pipeline
  2. https://cloud.google.com/dataflow/docs/concepts/beam-programming-model
  3. https://cloud.google.com/blog/products/data-analytics/multi-language-sdks-for-building-cloud-pipelines