写了一些MR后发现不管是别人写的还是官方给的,比如map方法,变量都是定义在方法外面. 因为之前都是照猫画虎的写的,所以自己也一直这么写,可是为什么呢? 我试了试定义在方法里面,程序照样跑,试了几个程序都是这样. 可能是自己之前对MR的运行过程了解的不是很详细,看父类Mapper和Reducer才知道,程序分发到一个节点后运行mapper类时初始一次,之后N次的map执行都是调用的map方法,所以这样写应该只是一种较优的写法而已. 就像某一个车间一个任务交给只初始一个人(map类)来做,N个加工…