如果我运行一个示例flink应用程序,如下所示:
DataStream ds;
ds.map(new MapFunction1()).print();
ds.map(new MapFunction2()).print();
flink是否会在内部将ds中的每条记录发送两次给下游操作员(mapfunction1和mapfunction2)?
我知道flink中的数据交换是在taskmanager级别进行的,而不是在操作员级别。
如果我运行一个示例flink应用程序,如下所示:
DataStream ds;
ds.map(new MapFunction1()).print();
ds.map(new MapFunction2()).print();
flink是否会在内部将ds中的每条记录发送两次给下游操作员(mapfunction1和mapfunction2)?
我知道flink中的数据交换是在taskmanager级别进行的,而不是在操作员级别。
2条答案
按热度按时间pjngdqdw1#
是,请尝试:
输出:
w6mmgewl2#
此应用程序的作业图如下所示,整个应用程序在一个taskmanager中的单个线程中运行。我禁用了操作符链接来让FlinkWebUI生成这个图,但是如果我没有这样做的话,就不会涉及到任何网络。