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