我发现Job(Configuration conf)的官方文档没有说这个构造函数在输入参数conf
上执行浅拷贝或深拷贝,而它的静态工厂构造函数Job.getInstance(Configuration conf)确实执行了根据其文档进行深层复制。我是否可以知道Job(Configuration conf)
是否也在所有不同版本的hadoop版本下执行深层复制?
答案 0 :(得分:2)
Here是指向当前Job.java源的链接。快速浏览一下,显示构造函数调用super(conf, null);
,因此我们需要抓住超类(JobContext
)来查看。该构造函数中的相关行在此处:
this.conf = new org.apache.hadoop.mapred.JobConf(conf);
这会调用JobConf
的超级(Configuration
)。这导致this Configuration constructor。相关文字:
从另一个配置克隆相同设置的新配置。
您可以查看代码here。