最近,我使用Dataflow对数据进行批处理,并由于IO错误("IOError:设备上没有空间“)而遇到管道中断。
工作者节点上的磁盘扩展解决了这个问题,但要处理的数据量并不大,磁盘不太可能耗尽。
因此,我想知道数据流是如何工作的,这样我才能更好地理解这一事件。
我的问题如下。
我猜想管道和作业是在托管的Kubernetes集群上管理的,作业是在用户的VM实例上执行的,因为数据流日志包括kubelet和docker日志。
如有任何资料,将不胜感激。
发布于 2021-05-06 07:32:05
Google Dataflow 是Apache 运行程序之一,它构建在Google (GCE)之上,即当您运行数据流作业时,它是在GCE实例上执行的。在作业启动期间,将Apache 安装在每个工作人员以及您指定的其他库上,然后执行它。对于数据流作业,可以指定GCE虚拟机的类型和硬盘大小。当然,取决于数据处理过程,工人VM的数量可以在时间期间更改。
还有一个名为Dataflow Shuffle的特性,它可以用于洗牌阶段,在像GroupByKey这样的转换中,组合是在托管服务上执行的(当然,在底部总是有一些VM,但是从您那里可以看到隐藏的E 227),而不是在e 128数据流工作VMe 229上。这被洗牌可以显着的更快的。
如果您想了解(数据流作业的流程),我建议您通过这个链接。
附加信息
如果您想了解编程模型 for Apache ,只需单击这里并查看它。
然后,Google添加了一个新的multi-language Dataflow (Runner v2)管道,该管道由新的、更快的体系结构启用。如果您想探索Runner v2,只需单击这里并浏览它。
请查找以下所有链接:
https://stackoverflow.com/questions/67409934
复制相似问题