Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 在ApacheFlink中,有没有办法在映射中获取taskManager Id?_Apache Flink - Fatal编程技术网

Apache flink 在ApacheFlink中,有没有办法在映射中获取taskManager Id?

Apache flink 在ApacheFlink中,有没有办法在映射中获取taskManager Id?,apache-flink,Apache Flink,使用ApacheFlink中的自定义分区,我们为每个要分配给特定taskmanager的记录指定一个键 假设我们向所有节点、TaskManager广播一个数据集。在映射或faltmap中是否有时间获取TaskManager Id?自定义分区程序不会将记录分配给TaskManager,而是分配给后续操作员的特定并行任务实例(TM可以执行同一操作员的多个并行任务实例) 您可以访问并行任务实例的ID,扩展RichFunction,例如,扩展RichMapFunction,而不是实现MapFunctio

使用ApacheFlink中的自定义分区,我们为每个要分配给特定taskmanager的记录指定一个键


假设我们向所有节点、TaskManager广播一个数据集。在映射或faltmap中是否有时间获取TaskManager Id?

自定义分区程序不会将记录分配给TaskManager,而是分配给后续操作员的特定并行任务实例(TM可以执行同一操作员的多个并行任务实例)

您可以访问并行任务实例的ID,扩展
RichFunction
,例如,扩展
RichMapFunction
,而不是实现
MapFunction
。丰富的函数可用于所有转换。
RichFunction
提供对
RuntimeContext
的访问,它告诉您并行任务实例的ID:

public static class MyMapper extends RichMapFunction<Long, Long> {

    @Override
    public void open(Configuration config) {
        int pId = getRuntimeContext().getIndexOfThisSubtask();
    }

    @Override
    public Long map(Long value) throws Exception {
        // ...
    }
}
公共静态类MyMapper扩展了RichMapFunction{
@凌驾
公共无效打开(配置){
int pId=getRuntimeContext().GetIndexOfthissSubTask();
}
@凌驾
公共长映射(长值)引发异常{
// ...
}
}