1. 程式人生 > >SPARKCORE的簡單瞭解--大資料紀錄片第十記

SPARKCORE的簡單瞭解--大資料紀錄片第十記

  今天不知道寫什麼好,想了一下,Hive和ElastICSearch都有一點了解,但是對於這兩個沒什麼好記錄的。因為Hive的一些問題會在後面有大資料相關問題和答案的總結,到時候會直接落實到面試筆試中的問題,更加直接。ES如果說概念上的話主要是倒排索引和各個型別與資料庫的對應型別。所以想了想還是寫一下SparkCore的一些解析,後續會有SparkCore內建函式的介紹。

  RDD

    RDD(Resilient Distributed Dataset)是sparkcore的基石,叫做彈性分散式資料集,它代表不可變、可分割槽、裡面的元素可平行計算的集合。在Spark中的主要操作就是對RDD的建立、轉化已有RDD和對呼叫RDD操作進行求值。每個RDD都被分為多個分割槽,這些分割槽執行在叢集中的不同節點上。

    RDD的操作分為兩種:轉換操作(transformations)和行為操作(actions)。轉換操作是將RDD轉換為另一個RDD,行為操作是向RDD外的驅動器程式返回結果或者把結果寫入外部系統的操作。spark是惰性計算模式,RDD只有在第一次執行行為操作的時候才會真正的計算。

    RDD的一些屬性:

      1、partition:分片是RDD的基本組成單位。每個RDD都會被一個計算任務處理,並決定平行計算的粒度。使用者可以在建立RDD的時候指定分片的個數,如果沒有指定則預設為程式所分配到的CPU的數量

      2、一個計算每個分割槽的函式。spark中RDD的計算是以分片為單位的,每個RDD都會實現compute函式以達到這個目的

      3、RDD之間的依賴關係。RDD的每次轉換操作都會生成一個新的RDD,所以RDD就會形成類似流水一樣的前後依賴,資料丟失時可以通過依賴重新計算丟失的資料

      4、partitioner,RDD的分片函式。spark中實現兩種型別的分配函式,一個是基於Hash的HashPartitioner,一個是基於範圍的RangePartitioer。只有基於key-value的RDD才會有partitioner

  對於spark覺得是很大的一個東西,很多要寫,就更不知道要寫什麼。之前對spark core,spark sql,spark streaming都有一點了解,所以一直想這個專案或者例項來把這些東西用起來。