1、RDD特點:
val rdd:[Stirng] = sc.textFile("")
1》每個RDD都有一個partition分區列表
2》每個RDD上都有一個計算的function,val a = rdd.flatMap(_.split("")),此過程中會將方法應用到rdd上的這個方法(此處是flatMap)以及作爲flatmap參數的匿名函數,這些信息,都會保存在rdd這個對象中,val b = a.map(_,1)
3》RDD之間有相互的依賴關係,從上邊來看,從最初的rdd->a->b此過程中,每個父RDD調用它的方法,生成一個新的子RDD,如a->b,這個過程,會在b中記錄一下,他的父RDD是a(通過dependency這個類的對象記錄這種信息)
4》針對元素KV對類型的RDD,一個節點上衆多的KV對,通過shuffle,RPC,存儲在哪個節點,由分區partitioner來決定
5》根據大數據的一個理念:移動計算,移動計算而不移動數據,RDD上有5個特點,preferedLocation。會根據此特性,來將以此數據塊作爲輸入的task,按照就進一致原則,調度在一個節點上