Hi,all:
看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle mode看是UNDEFINED的。 那么,shuffle mode有哪些方式?在应用里面可以设置么? 谢谢. |
Hi,
现在就两种:pipeline和batch batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 理论上可以per transformation的来设置,see PartitionTransformation. Best, Jingsong On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]> wrote: > Hi,all: > > > 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > mode看是UNDEFINED的。 > 那么,shuffle mode有哪些方式?在应用里面可以设置么? > > > 谢谢. -- Best, Jingsong Lee |
那就是说datasream默认模式就是pipeline,而批模式是batch,批的模式是存在shuffle情况下,需要等shuffle操作造成,才能发送到下游.那如果批应用有shuffle操作和没有shuffle的,是都要等这个shuffle操作完成了才能一起发给下游,还是说其他非shuffle操作完成了可以先发给下游,不用等shuffle操作完成一起再发送?
发自我的iPhone ------------------ 原始邮件 ------------------ 发件人: Jingsong Li <[hidden email]> 发送时间: 2020年7月6日 11:03 收件人: user-zh <[hidden email]> 主题: 回复:【Flink的shuffle mode】 Hi, 现在就两种:pipeline和batch batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 理论上可以per transformation的来设置,see PartitionTransformation. Best, Jingsong On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]> wrote: > Hi,all: > > > 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > mode看是UNDEFINED的。 > 那么,shuffle mode有哪些方式?在应用里面可以设置么? > > > 谢谢. -- Best, Jingsong Lee |
pipeline:直接走网络传输,不buffer所有数据
batch:buffer所有数据,结束后一起发送 流一定是pipeline 批可以是pipeline(更好的性能),也可以是batch(更好的容错和更简单的资源申请) Best, Jingsong On Mon, Jul 6, 2020 at 12:16 PM 忝忝向仧 <[hidden email]> wrote: > > 那就是说datasream默认模式就是pipeline,而批模式是batch,批的模式是存在shuffle情况下,需要等shuffle操作造成,才能发送到下游.那如果批应用有shuffle操作和没有shuffle的,是都要等这个shuffle操作完成了才能一起发给下游,还是说其他非shuffle操作完成了可以先发给下游,不用等shuffle操作完成一起再发送? > > > > 发自我的iPhone > > > ------------------ 原始邮件 ------------------ > 发件人: Jingsong Li <[hidden email]> > 发送时间: 2020年7月6日 11:03 > 收件人: user-zh <[hidden email]> > 主题: 回复:【Flink的shuffle mode】 > > > > Hi, > > 现在就两种:pipeline和batch > > batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 > > 理论上可以per transformation的来设置,see PartitionTransformation. > > Best, > Jingsong > > On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]> wrote: > > > Hi,all: > > > > > > 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > > mode看是UNDEFINED的。 > > 那么,shuffle mode有哪些方式?在应用里面可以设置么? > > > > > > 谢谢. > > > > -- > Best, Jingsong Lee -- Best, Jingsong Lee |
In reply to this post by 忝忝向仧
你好,可以参考下ExecutionConfigOptions,OptimizerConfigOptions和GlobalConfiguration,里面有比较清楚地介绍
------------------------------------------------------------------ 发件人:忝忝向仧 <[hidden email]> 发送时间:2020年7月6日(星期一) 12:16 收件人:user-zh <[hidden email]> 主 题:回复:【Flink的shuffle mode】 那就是说datasream默认模式就是pipeline,而批模式是batch,批的模式是存在shuffle情况下,需要等shuffle操作造成,才能发送到下游.那如果批应用有shuffle操作和没有shuffle的,是都要等这个shuffle操作完成了才能一起发给下游,还是说其他非shuffle操作完成了可以先发给下游,不用等shuffle操作完成一起再发送? 发自我的iPhone ------------------ 原始邮件 ------------------ 发件人: Jingsong Li <[hidden email]> 发送时间: 2020年7月6日 11:03 收件人: user-zh <[hidden email]> 主题: 回复:【Flink的shuffle mode】 Hi, 现在就两种:pipeline和batch batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 理论上可以per transformation的来设置,see PartitionTransformation. Best, Jingsong On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]> wrote: > Hi,all: > > > 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > mode看是UNDEFINED的。 > 那么,shuffle mode有哪些方式?在应用里面可以设置么? > > > 谢谢. -- Best, Jingsong Lee |
In reply to this post by Jingsong Li
如果是批的模式,怎么在应用程序里面指定shuffle_mode呢?
另外,下面提到如果是流的计算,一定是pipeline模式. 那为什么我使用datastream做keyby流操作后,跟踪源码它的mode是UNDEFINED呢? 谢谢. ------------------ 原始邮件 ------------------ 发件人: "Jingsong Li"<[hidden email]>; 发送时间: 2020年7月6日(星期一) 中午12:19 收件人: "user-zh"<[hidden email]>; 主题: Re: 【Flink的shuffle mode】 pipeline:直接走网络传输,不buffer所有数据 batch:buffer所有数据,结束后一起发送 流一定是pipeline 批可以是pipeline(更好的性能),也可以是batch(更好的容错和更简单的资源申请) Best, Jingsong On Mon, Jul 6, 2020 at 12:16 PM 忝忝向仧 <[hidden email]> wrote: > > 那就是说datasream默认模式就是pipeline,而批模式是batch,批的模式是存在shuffle情况下,需要等shuffle操作造成,才能发送到下游.那如果批应用有shuffle操作和没有shuffle的,是都要等这个shuffle操作完成了才能一起发给下游,还是说其他非shuffle操作完成了可以先发给下游,不用等shuffle操作完成一起再发送? > > > > 发自我的iPhone > > > ------------------ 原始邮件 ------------------ > 发件人: Jingsong Li <[hidden email]&gt; > 发送时间: 2020年7月6日 11:03 > 收件人: user-zh <[hidden email]&gt; > 主题: 回复:【Flink的shuffle mode】 > > > > Hi, > > 现在就两种:pipeline和batch > > batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 > > 理论上可以per transformation的来设置,see PartitionTransformation. > > Best, > Jingsong > > On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]&gt; wrote: > > &gt; Hi,all: > &gt; > &gt; > &gt; 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > &gt; mode看是UNDEFINED的。 > &gt; 那么,shuffle mode有哪些方式?在应用里面可以设置么? > &gt; > &gt; > &gt; 谢谢. > > > > -- > Best, Jingsong Lee -- Best, Jingsong Lee |
你好:
问题1,指定shuffle_mode tEnv.getConfig.getConfiguration.setString(ExecutionConfigOptions.TABLE_EXEC_SHUFFLE_MODE, "pipeline") 问题2,mode是UNDEFINED的概念 使用UNDEFINED并不是说模式没有定义,而是由框架自己决定 The shuffle mode is undefined. It leaves it up to the framework to decide the shuffle mode. ------------------------------------------------------------------ 发件人:忝忝向仧 <[hidden email]> 发送时间:2020年7月7日(星期二) 23:37 收件人:user-zh <[hidden email]> 主 题:回复: 【Flink的shuffle mode】 如果是批的模式,怎么在应用程序里面指定shuffle_mode呢? 另外,下面提到如果是流的计算,一定是pipeline模式. 那为什么我使用datastream做keyby流操作后,跟踪源码它的mode是UNDEFINED呢? 谢谢. ------------------ 原始邮件 ------------------ 发件人: "Jingsong Li"<[hidden email]>; 发送时间: 2020年7月6日(星期一) 中午12:19 收件人: "user-zh"<[hidden email]>; 主题: Re: 【Flink的shuffle mode】 pipeline:直接走网络传输,不buffer所有数据 batch:buffer所有数据,结束后一起发送 流一定是pipeline 批可以是pipeline(更好的性能),也可以是batch(更好的容错和更简单的资源申请) Best, Jingsong On Mon, Jul 6, 2020 at 12:16 PM 忝忝向仧 <[hidden email]> wrote: > > 那就是说datasream默认模式就是pipeline,而批模式是batch,批的模式是存在shuffle情况下,需要等shuffle操作造成,才能发送到下游.那如果批应用有shuffle操作和没有shuffle的,是都要等这个shuffle操作完成了才能一起发给下游,还是说其他非shuffle操作完成了可以先发给下游,不用等shuffle操作完成一起再发送? > > > > 发自我的iPhone > > > ------------------ 原始邮件 ------------------ > 发件人: Jingsong Li <[hidden email]&gt; > 发送时间: 2020年7月6日 11:03 > 收件人: user-zh <[hidden email]&gt; > 主题: 回复:【Flink的shuffle mode】 > > > > Hi, > > 现在就两种:pipeline和batch > > batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 > > 理论上可以per transformation的来设置,see PartitionTransformation. > > Best, > Jingsong > > On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]&gt; wrote: > > &gt; Hi,all: > &gt; > &gt; > &gt; 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > &gt; mode看是UNDEFINED的。 > &gt; 那么,shuffle mode有哪些方式?在应用里面可以设置么? > &gt; > &gt; > &gt; 谢谢. > > > > -- > Best, Jingsong Lee -- Best, Jingsong Lee |
In reply to this post by 忝忝向仧
补充: 1.11的shuffle-mode配置的默认值为ALL_EDGES_BLOCKING
共有 ALL_EDGES_BLOCKING(等同于batch) FORWARD_EDGES_PIPELINEDPOINTWISE_EDGES_PIPELINED ALL_EDGES_PIPELINED(等同于pipelined)对于pipelined多出了两种选择 ------------------------------------------------------------------ 发件人:忝忝向仧 <[hidden email]> 发送时间:2020年7月7日(星期二) 23:37 收件人:user-zh <[hidden email]> 主 题:回复: 【Flink的shuffle mode】 如果是批的模式,怎么在应用程序里面指定shuffle_mode呢? 另外,下面提到如果是流的计算,一定是pipeline模式. 那为什么我使用datastream做keyby流操作后,跟踪源码它的mode是UNDEFINED呢? 谢谢. ------------------ 原始邮件 ------------------ 发件人: "Jingsong Li"<[hidden email]>; 发送时间: 2020年7月6日(星期一) 中午12:19 收件人: "user-zh"<[hidden email]>; 主题: Re: 【Flink的shuffle mode】 pipeline:直接走网络传输,不buffer所有数据 batch:buffer所有数据,结束后一起发送 流一定是pipeline 批可以是pipeline(更好的性能),也可以是batch(更好的容错和更简单的资源申请) Best, Jingsong On Mon, Jul 6, 2020 at 12:16 PM 忝忝向仧 <[hidden email]> wrote: > > 那就是说datasream默认模式就是pipeline,而批模式是batch,批的模式是存在shuffle情况下,需要等shuffle操作造成,才能发送到下游.那如果批应用有shuffle操作和没有shuffle的,是都要等这个shuffle操作完成了才能一起发给下游,还是说其他非shuffle操作完成了可以先发给下游,不用等shuffle操作完成一起再发送? > > > > 发自我的iPhone > > > ------------------ 原始邮件 ------------------ > 发件人: Jingsong Li <[hidden email]&gt; > 发送时间: 2020年7月6日 11:03 > 收件人: user-zh <[hidden email]&gt; > 主题: 回复:【Flink的shuffle mode】 > > > > Hi, > > 现在就两种:pipeline和batch > > batch的话是block住,直到执行完毕才发给下游的,所以这个shuffle mode一般只对批作业有用。 > > 理论上可以per transformation的来设置,see PartitionTransformation. > > Best, > Jingsong > > On Sun, Jul 5, 2020 at 10:48 PM 忝忝向仧 <[hidden email]&gt; wrote: > > &gt; Hi,all: > &gt; > &gt; > &gt; 看Flink源码时候,在应用中使用keyBy后,源码的transformations会有shuffle mode方法,这个shuffle > &gt; mode看是UNDEFINED的。 > &gt; 那么,shuffle mode有哪些方式?在应用里面可以设置么? > &gt; > &gt; > &gt; 谢谢. > > > > -- > Best, Jingsong Lee -- Best, Jingsong Lee |
Free forum by Nabble | Edit this page |