云数据流的工作方式以及数据流作业的管理方式



我最近使用Dataflow进行数据的批处理,但由于IO错误("IOError:设备上没有剩余空间"(而导致管道停止。

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

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

我的问题如下。

  • 云数据流的架构是什么?我想了解它的体系结构和文档
  • 数据流作业在启动之前的流程是什么

我的猜测是,管道和作业在managed Kubernetes集群上进行管理,作业在用户的VM实例上执行,因为数据流日志包括kubelet和docker日志。

如有任何信息,我们将不胜感激。

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

谷歌云数据流Apache Beam运行程序之一,它构建在谷歌计算引擎(GCE(之上,即当您运行数据流作业时,它在GCE实例上执行。在启动作业期间,Apache Beam SDK会安装在每个worker以及您指定的其他库上,然后执行它。对于Dataflow作业,您可以指定GCE虚拟机的类型以及硬盘的大小当然,根据数据处理,VM的工作人员数量可能会在一段时间内发生变化

还有一个名为Dataflow Shuffle的功能,可用于Shuffle阶段,在GroupByKey之类的转换中,组合在托管服务上执行(当然,底部总是有一些虚拟机,但这是隐藏的(,而不是Dataflow worker虚拟机。这是洗牌可以明显更快

  1. 数据流作业启动前的流程是什么

如果您想了解数据流作业的流程,我建议您浏览此链接。

附加信息

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

然后,谷歌云添加了一个新的多语言数据流(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

最新更新