job(configuration)执行浅拷贝还是深拷贝?

afdcj2ne  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(383)

我发现job的官方文档(configurationconf)没有说这个构造函数对输入参数执行浅拷贝或深拷贝 conf ,而它的静态工厂构造函数job.getinstance(configuration)根据其文档执行深度复制。我能知道 Job(Configuration conf) 在所有不同版本的hadoop版本下也执行深度复制?

tpgth1q7

tpgth1q71#

下面是指向当前job.java源代码的链接。快速浏览一下就会发现构造函数调用 super(conf, null); ,所以我们需要抓住超级班( JobContext )看一眼。该构造函数中的相关行如下所示:

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

这导致了 JobConf 太棒了( Configuration ). 这将导致此配置构造函数。相关文本:
具有从另一个克隆的相同设置的新配置。
你可以在这里查看代码。

相关问题