Job(配置conf)是执行浅拷贝还是深拷贝?

时间:2013-10-11 02:52:40

标签: java apache hadoop mapreduce deep-copy

我发现Job(Configuration conf)的官方文档没有说这个构造函数在输入参数conf上执行浅拷贝或深拷贝,而它的静态工厂构造函数Job.getInstance(Configuration conf)确实执行了根据其文档进行深层复制。我是否可以知道Job(Configuration conf)是否也在所有不同版本的hadoop版本下执行深层复制?

1 个答案:

答案 0 :(得分:2)

Here是指向当前Job.java源的链接。快速浏览一下,显示构造函数调用super(conf, null);,因此我们需要抓住超类(JobContext)来查看。该构造函数中的相关行在此处:

this.conf = new org.apache.hadoop.mapred.JobConf(conf);

这会调用JobConf的超级(Configuration)。这导致this Configuration constructor。相关文字:

  

从另一个配置克隆相同设置的新配置。

您可以查看代码here