說白了平時我們的Windows下跑的程序一般來說都是移動數據,即這個程序如果要完成計算任務需要的那些文件就去對應的目錄找,或者這些文件要從別的地方拷貝都本台機器上,這樣就會導致大量時間花在數據的移動上。而移動計算呢,就是講應用程序放在對應的文件夾或者機器上,“就地取材”就可以完成計算這個任務,最后只需要把相較於要處理的大文件來說很小的一個結果文件輸出即可。而在大數據時代,常常會聽到這樣一句話:計算向數據移動。就是說的這個道理,而不是一般的數據向計算移動!
打個比方,身為發達國家的中國不會把落后國家美國的廢棄鋼鐵直接通過水運運回國內生產加工制作大飛機,而是把飛機制造廠搬到美國去,在當地生產制造好一架架可以飛的飛機之后,再飛回國內投入使用。這里的飛機制造廠就是上面的程序,而鋼材等制作飛機的材料就是數據,而水運的方式就是數據移動。可見數據移動有多笨重!!!! ----開個玩笑,別被查水表就行!
在以前的數據處理中時使用的移動數據,其實就是將需要處理的數據傳輸到存放不同處理數據方式邏輯的各個節點上。這樣做的效率很低,特別是大數據中的數據量是很大的,至少都是GB以上,更大的是TB、PB甚至更大,而且磁盤I/O、網絡I/O的效率是很低的,這樣處理起來就需要很長的時間,遠遠不能滿足我們的要求。而移動計算就出現了。
移動計算,也叫做本地計算,是數據就存放在節點上不再變動,而是將處理邏輯程序傳輸到各個數據節點上。由於處理程序的大小肯定不會特別的大,這樣就可以實現很快將程序傳輸到存放數據的各個節點上去,然后本地執行處理數據,效率高。現在的大數據處理技術都是采用這種方式。
