我新的火花......一些基本的東西要通過基本面的時候我不明白:星火基礎
查詢1.分發處理 - 可以激發無HDFS的工作 - 在羣集上的Hadoop文件系統(如通過創建它自己的分佈式文件系統),還是需要一些基本的分佈式文件系統,如HDFS,GPFS等的必備條件。
查詢2.如果我們已經有一個文件加載到HDFS中塊) - 然後將再次將Spark轉換爲塊並在其級別重新分配(用於分佈式處理),或者將按照Haddop HDFS羣集使用塊分配。
查詢3.除定義DAG外,SPARK還創建像MapReduce那樣的分區並將分區拖動到Reducer節點以進行進一步計算? 我很困惑,因爲直到創建DAG,很明顯,在每個Worker節點上工作的Spark Executor將數據塊加載爲內存中的RDD,並且按照DAG應用計算....但是部件需要用於分區數據按照Keys的要求,並將它們帶到Reducer任務將執行的其他節點(就像mapreduce),這是如何在內存中完成的?
感謝@Daniel回答所有三個問題,下次會更加清楚。 你是對的我的查詢只與Shuffle有關....從你的回答中得到更多我假設參數:spark.shuffle.memoryFraction和spark.shuffle.spill都適用於映射器 - 當Shuffle創建塊時使用。 Reducer節點會發生什麼?它會直接在內存中獲取混洗塊,還是首先將塊寫入Reducer節點磁盤,然後加載到內存中進行計算。 – Kansingh
偉大的問題!我認爲減速器也可能泄漏到磁盤。這些問題最好通過檢查代碼來解決,但洗牌代碼的結構相當複雜。也許這是這個地方:https://github.com/apache/spark/blob/v1.4.1/core/src/main/scala/org/apache/spark/shuffle/hash/HashShuffleReader.scala#L55 –