個人任務備註_編寫提交spark任務的springboot介面
完成載入詞庫介面,和查詢spark任務狀態介面,銷燬spark任務介面
載入詞庫介面執行流程:
1.springboot的介面提交載入詞庫任務並指定執行引數到spark叢集,spark叢集獲取hdfs上事先上傳好的詞庫分析專案jar包並執行指定main方法(注:程式中如果有第三方依賴,則打包時需要新增上)
2.載入詞庫程式中開始讀取hdfs上輸入法詞庫(一級/二級utf8_txt詞庫)生成SparkRDD,進行載入過濾,轉換,追加分類值等操作,最終結果(詞條,一級分類-二級分類+空格+一級分類_二級分類...的結構)
3.然後載入詞庫程式中使用httpClient呼叫自定義詞庫管理專案的獲取自定義詞庫內容介面得到資料(詞條,一級分類-二級分類的結構)並生成SparkRDD
4.合併輸入法詞庫RDD和自定義詞庫RDD,進行合併,去重,轉換,對於相同的詞條,合併後則追加分類
5.最終載入詞庫的結果上傳到hdfs上儲存,以便後續使用者資料分析使用.
備註:
載入詞庫程式耗時測試,申請10核cpu,20g記憶體使用5個節點,執行耗時70-80秒
重點:
spark任務提交方式由以前的sparksubmit client模式本地driver呼叫遠端spark worker計算方式修改為呼叫spark提供的restful介面,使用cluster模式,遠端driver啟動,呼叫遠端spark worker計算
sparksubmit client 呼叫模式可用於本地遠端spark任務除錯,輸出語句列印在本地控制檯(缺陷:本地需要安裝spark環境,相當於本機也是一個節點,程式執行時作為driver端,申請spark計算和排程,接受worker端的計算結果)
sparkresful cluster呼叫模式可用於實際開發spark任務提交,輸出語句列印在遠端spark叢集上某一臺driver端(driver端由spark叢集執行任務時自動分配) 本地不需要安裝spark環境,任務可通過spark webUI進行監控列印輸出