Runner部分是 Java 的算子执行, SDK Worker部分是 Python 的执行环境, Beam已经抽象 Control/Data/State/Logging 等服务。并这些服务已经在 Beam 的 Flink runner 上稳定高效的运行了很久了。所以在 PyFlink UDF 执行上面我们可以站在巨人的肩膀上了:),这里我们发现 Apache Beam 在 API 层面和在 UDF 的执行层面都有解决方案,而 PyFlink 在 API 层面采用了 Py4J 解决 VM 通讯问题,在 UDF 执行需求上采用了 Beam 的 Protability Framework 解决 UDF 执行环境问题。
这也表明了 PyFlink 在技术选型上严格遵循以最小的代价达成既定目标的原则,在技术选型上永远会选择最合适的,最符合 PyFlink 长期发展的技术架构。(BTW,与 Beam 的合作过程中,我也向 Beam 社区提交了20+的优化 patch)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。