命名 Flink 操作符
Naming Flink Operators
我正在使用 Flink v.1.4.0
。
我希望能够在 Flink UI
中命名运算符。我知道要这样做我只需要在 DataSet
或 DataStream
上使用 .name()
方法。例如,像这样:
DataSet<SomePojo> flinkDataSet = ...;
flinkDataSet
.map(new SomeTransformation())
.name("Transformation A");
我想知道的是,究竟是什么定义了运算符?它是 DataSet's/DataStream 的密钥吗?或者元素类型?我知道如果我应用 MapFunction
与应用该函数的元素具有相同 return 类型的运算符将保持不变,但我注意到如果我应用 [= 运算符通常会发生变化18=] 或 KeyBy
或 GroupBy
操作,以及应用当然的操作。
我问这个的原因是因为我想了解 Flink DAG 在 Flink UI 中的粒度有多细,例如我可以说出每一个转变吗?或者运算符是由正在处理的 DataSet/DataStream 的类型定义的,因此我只能命名它们?例如,这行得通吗?
flinkDataSet
.map(new SomeTransformation())
.name("Transformation A")
.map(new SomeOtherTransformation())
.name("Transformation B");
或者名字会被第二个覆盖吗?我当然可以试验并找出答案,但我也想了解原因。
就我使用的 name() 函数而言,您可以使用数据流或数据集 API 进行的每个转换都是一个操作,因此在您的第二种情况下,图形将如下所示
"Transformation A" -------> "Transformation B"
但是在 Flink dashborad 上,可以将这些任务分组到同一个任务中,如下所示:
----------------------- -----------------------
| SOURCE | ---> |"Transformation A" ->| ---> More operations
----------------------- |"Transformation B" |
-----------------------
是的,您可以为每个转换命名。但正如@diegoreico 指出的那样,如果运算符是流水线式的,那么 Flink UI 将把它们分组到 DAG 中的单个框(节点)中。
我正在使用 Flink v.1.4.0
。
我希望能够在 Flink UI
中命名运算符。我知道要这样做我只需要在 DataSet
或 DataStream
上使用 .name()
方法。例如,像这样:
DataSet<SomePojo> flinkDataSet = ...;
flinkDataSet
.map(new SomeTransformation())
.name("Transformation A");
我想知道的是,究竟是什么定义了运算符?它是 DataSet's/DataStream 的密钥吗?或者元素类型?我知道如果我应用 MapFunction
与应用该函数的元素具有相同 return 类型的运算符将保持不变,但我注意到如果我应用 [= 运算符通常会发生变化18=] 或 KeyBy
或 GroupBy
操作,以及应用当然的操作。
我问这个的原因是因为我想了解 Flink DAG 在 Flink UI 中的粒度有多细,例如我可以说出每一个转变吗?或者运算符是由正在处理的 DataSet/DataStream 的类型定义的,因此我只能命名它们?例如,这行得通吗?
flinkDataSet
.map(new SomeTransformation())
.name("Transformation A")
.map(new SomeOtherTransformation())
.name("Transformation B");
或者名字会被第二个覆盖吗?我当然可以试验并找出答案,但我也想了解原因。
就我使用的 name() 函数而言,您可以使用数据流或数据集 API 进行的每个转换都是一个操作,因此在您的第二种情况下,图形将如下所示
"Transformation A" -------> "Transformation B"
但是在 Flink dashborad 上,可以将这些任务分组到同一个任务中,如下所示:
----------------------- -----------------------
| SOURCE | ---> |"Transformation A" ->| ---> More operations
----------------------- |"Transformation B" |
-----------------------
是的,您可以为每个转换命名。但正如@diegoreico 指出的那样,如果运算符是流水线式的,那么 Flink UI 将把它们分组到 DAG 中的单个框(节点)中。