首页 > 代码库 > MR-为什么MR类的变量喜欢定义在方法外面?

MR-为什么MR类的变量喜欢定义在方法外面?


写了一些MR后发现不管是别人写的还是官方给的,比如map方法,变量都是定义在方法外面。

因为之前都是照猫画虎的写的,所以自己也一直这么写,可是为什么呢?

我试了试定义在方法里面,程序照样跑,试了几个程序都是这样。


可能是自己之前对MR的运行过程了解的不是很详细,看父类Mapper和Reducer才知道,程序分发到一个节点后运行mapper类时初始一次,之后N次的map执行都是调用的map方法,所以这样写应该只是一种较优的写法而已。

就像某一个车间一个任务交给只初始一个人(map类)来做,N个加工品就不断让一双手(map方法)重复进出操作。


 

以上只是我的猜测,希望有大拿喷我来订正。


 

MR-为什么MR类的变量喜欢定义在方法外面?