gpt4 book ai didi

hadoop - 在 MapReduce 的 Mapper 类中使用静态关键字

转载 作者:可可西里 更新时间:2023-11-01 15:12:54 26 4
gpt4 key购买 nike

我是 MapReduce 的新手。我见过很多用 MapReduce 编写并声明静态变量的代码。

示例:

public class Map extends Mapper<Object, Text, Text, IntWritable>{
private static IntWritable one = new IntWritable(1);
private Text word = new Text();

public void map(Object key, Text value, Context context){
//Mapper code
}
}
}

但有疑问,我知道每个 Map 任务都是在单独的 JVM 中实例化的。那么 Mapper 实例如何共享静态变量呢?如果不能共享,静态变量有什么用?

最佳答案

简而言之,他们没有

您的 java 编译类将被分发,例如发送到将运行代码的每个节点。这样每个节点都有您的字节码的副本,在其自己的 JVM 中执行。

因此,这种声明在不同的 map() 方法调用(由框架完成)之间不更改其值的字段的技术是为了避免在多次执行过程中同一 JVM 中同一对象的不必要实例。

[]s!

关于hadoop - 在 MapReduce 的 Mapper 类中使用静态关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32396922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com