Spark開發-WordCount流程詳細講解

Xlucas發表於2017-09-18

核心
wordcount流程詳細講解

有一份這樣的資料
hello xlucas hello hadoop
hello hadoop
hello spark
hello kafka

最後的結果是這樣的
hello:5
hadoop:2
spark:1
xlucas:1
kafka:1

那麼這裡spark主要做了哪些事情?

我們先從textFile可以看到這裡呼叫了HadoopFile
這裡寫圖片描述

從HadoopFile這裡我們可以看到,建立了一個HadoopRDD的例項
這裡寫圖片描述

在去掉Key的時候會做Map操作,這個map會返回 一個MapPartitionsRDD
這裡寫圖片描述

這裡的flatMap也會返回一個MapPartitionsRDD
這裡寫圖片描述

在做reduceByKey的時候,其實呼叫了combineByKeyWithClassTag
這裡寫圖片描述

我們可以看到combineByKeyWithClassTag其實返回了一個shuffledRDD
這裡寫圖片描述

我們可以看到在shuffledRDD最後還做了一個MapPartitionsRDD的操作,其實這一步主要做了一次資料整理,在操作之前將檔案的key去掉了,這一步將檔案的key加上寫回到HDFS等操作
這裡寫圖片描述

整個流程圖是這樣的:
這裡寫圖片描述

相關文章