2017-03-20 115 views
0

當我這樣做時sc.textFile("abc.txt") Spark在RAM(內存)中創建RDD。火花如何沒有足夠的內存(RAM)來創建RDD

  1. 那麼集羣集體內存應該大於文件「abc.txt」的大小嗎?

  2. 我的工作節點有磁盤空間,所以在讀texfile創建RDD時可以使用磁盤空間嗎?如果是這樣怎麼辦?

  3. 如何處理不適合內存的大數據?

回答

0

你第一個假設是不正確的:

Spark在RAM(內存)創建RDD。

Spark不會在內存中創建RDD。它使用內存,但不限於內存數據處理。所以:

  • 如此做集羣的集體記憶應該比文件「的abc.txt」尺寸更大?

    沒有

  • 我的工作節點的磁盤空間,所以我可以使用磁盤空間,而讀texfile創建RDD?如果是這樣怎麼辦?

    不需要特別的步驟。

  • 如何處理不適合內存的大數據?

    參見上文。

1

當我做sc.textFile( 「的abc.txt」)Spark在RAM(內存)創建RDD。

上述觀點並不一定如此。在Spark中,他們的名字叫transformations,叫做actionssc.textFile("abc.txt")是轉換操作,它不會直接加載數據,除非您觸發任何操作,例如count()

爲了給你所有問題的集體答案,我會敦促你瞭解spark execution works。它們是所謂的邏輯和物理計劃。作爲物理計劃的一部分,它在開始作業之前執行成本計算(跨集羣的可用資源計算)。如果你瞭解他們,你會清楚地知道你的所有問題。