说白了平时我们的Windows下跑的程序一般来说都是移动数据,即这个程序如果要完成计算任务需要的那些文件就去对应的目录找,或者这些文件要从别的地方拷贝都本台机器上,这样就会导致大量时间花在数据的移动上。而移动计算呢,就是讲应用程序放在对应的文件夹或者机器上,“就地取材”就可以完成计算这个任务,最后只需要把相较于要处理的大文件来说很小的一个结果文件输出即可。而在大数据时代,常常会听到这样一句话:计算向数据移动。就是说的这个道理,而不是一般的数据向计算移动!
打个比方,身为发达国家的中国不会把落后国家美国的废弃钢铁直接通过水运运回国内生产加工制作大飞机,而是把飞机制造厂搬到美国去,在当地生产制造好一架架可以飞的飞机之后,再飞回国内投入使用。这里的飞机制造厂就是上面的程序,而钢材等制作飞机的材料就是数据,而水运的方式就是数据移动。可见数据移动有多笨重!!!! ----开个玩笑,别被查水表就行!
在以前的数据处理中时使用的移动数据,其实就是将需要处理的数据传输到存放不同处理数据方式逻辑的各个节点上。这样做的效率很低,特别是大数据中的数据量是很大的,至少都是GB以上,更大的是TB、PB甚至更大,而且磁盘I/O、网络I/O的效率是很低的,这样处理起来就需要很长的时间,远远不能满足我们的要求。而移动计算就出现了。
移动计算,也叫做本地计算,是数据就存放在节点上不再变动,而是将处理逻辑程序传输到各个数据节点上。由于处理程序的大小肯定不会特别的大,这样就可以实现很快将程序传输到存放数据的各个节点上去,然后本地执行处理数据,效率高。现在的大数据处理技术都是采用这种方式。