Hadoop大資料存算分離下,遷移HDFS如何做到業務無感?

華夏大視野發表於2021-12-03

Hadoop作為部署資料湖最常用的技術,以其生態為核心的大資料框架已經十分成熟。隨著資料總量和形式的不斷增長,存算分離成了大資料架構發展的主流方向。

此前,杉巖資料對Hadoop生態中HDFS當前存在的一些侷限性作了分析,並介紹了基於杉巖資料高效能儲存引擎的大資料存算分離場景儲存解決方案。本文將進一步介紹在實際專案落地過程中,杉巖資料MOSFS存算分離方案處理新老架構更替的具體方法與操作步驟。

場景分析:從存算一體到存算分離

場景一:新建獨立計算平臺採用存算分離架構

第一次建設大資料計算平臺就直接採用存算分離架構,同時在有新業務系統擴充套件時規劃搭建獨立的計算平臺場景。這是新大資料平臺搭建且獨立運作的場景,不涉及到老資料的使用,也是最簡單的存算分離落地場景。

場景二:新建大資料平臺完全替換原有平臺

直接新建更強的大資料計算平臺完全替換原有計算平臺,在計算平臺升級換代時採用存算分離架構。該場景下原有平臺的計算與儲存直接淘汰,但由於存在歷史資料,需要將原有的HDFS資料遷移到新的分離儲存中。

場景三:獨立部署分離儲存擴容HDFS

在實際資料湖建設專案中,更多是利舊場景,在新增獨立分離儲存外,將繼續使用原有的計算平臺,同時原有HDFS的儲存空間與資料需要保留,以實現HDFS空間的整體擴容。

杉巖資料MOSFS實現存算分離平滑落地

針對存在老HDFS資料的後兩種場景,杉巖資料推出大資料存算分離場景的儲存解決方案,可透過MOSFS支援的符號連結方式,實現對原有HDFS的納管與資料自動遷移,使用提供的自動化工具透過特定步驟操作即可便捷地完成。

圖  MOSFS納管遷移HDFS實現存算分離

步驟一:執行初始化,實現MOSFS到HDFS對映通路

使用MOSFS遷移工具在HDFS的指定路徑(比如/name目錄)執行初始化命令,執行之後透過MOSFS的客戶端訪問mosfs://name/,就能完整訪問HDFS對應/name目錄裡的內容,兩者是完全等價的。在完成初始化操作之後,MOSFS就具備了讀寫HDFS儲存空間的能力,該過程原有資料流程沒有更改,所以業務系統的執行完全無感。

步驟二:計算平臺切換schema為mosfs

將fs.hdfs.impl的配置修改為MOSFS的實現,此修改實現上層計算元件訪問儲存的schema切換為mosfs://。初始化已經完成了MOSFS到HDFS的通路建立,因此當完成配置修改並重啟計算元件後,各個元件便可透過mosfs://的方式來讀寫原有HDFS儲存的資料。該步驟的執行涉及到計算元件的重啟,但是業務受影響的時間很短。

步驟三:同步目錄結構,實現讀寫分流

完成上一步驟後,業務的資料讀寫還在原有的HDFS中執行,再使用自動化工具執行目錄同步。執行完成後,MOSFS的名稱空間中會按照HDFS中相同的拓撲結構建立所有目錄及對應的檔案,但檔案依舊會以符號連結的方式對映到HDFS中的相同檔案上。這時業務側讀資料時,依舊會透過符號連結方式直接讀取原有HDFS儲存中的對應檔案,而寫操作則會在MOSFS的儲存空間中直接寫入新的檔案。

此步驟在實現新老資料讀寫分流的同時,對業務層無影響。

執行完以上三個步驟,MOSFS對原有HDFS的納管操作就完成了場景三獨立部署分離儲存擴容HDFS中存算分離架構的實現。此過程沒有改變原有儲存空間的目錄結構,對業務應用系統無影響。

圖 MOSFS納管HDFS實現讀寫分流

在實踐中,現有HDFS也可透過ViewFS機制實現多HDFS叢集的擴充套件,但ViewFS機制在應對已有老資料的目錄擴容時需要建立新的子目錄,如需使用老資料,則需要業務側做程式碼的調整適配或將老資料遷移。MOSFS依靠符號連結方式實現多叢集的資料讀寫分流,解決了HDFS透過ViewFS機制不能將多個儲存空間掛載到相同掛載點的情況,滿足了已有儲存目錄的擴容需求。

步驟四:遷移資料

在場景二新建大資料平臺完全替換原有平臺中,為了實現存算分離的落地,需要將原有HDFS叢集中的資料完整地遷移到分離部署的MOSFS中。我們依舊使用遷移工具執行copy命令觸發資料的自動遷移,具體執行過程中還可以透過業務負載以及對應硬體資源來調整遷移任務的併發數,在不影響前端業務的情況下高效地完成資料的遷移。單個原有HDFS檔案的符號連結在對應檔案資料完成遷移後會執行刪除連結操作,在符號連結刪除前業務透過符號連結訪問HDFS資料,刪除後直接訪問MOSFS儲存中的檔案資料。遷移完成的檔案生效切換僅涉及一個後設資料的更新操作,所以實際的資料遷移過程不影響業務層。

在資料遷移過程中,MOSFS遷移工具支援透過反向遷移隨時回滾,撤銷遷移操作。如已有新增資料寫入到MOSFS中,也能把這些新增資料複製回原始的儲存系統。

步驟五:刪除老資料

執行完前4個步驟,所有的業務資料讀寫都已在新的分離部署儲存中,就可以刪除老資料或拆除原有的叢集,實現新的存算分離架構對原有存算一體架構的升級改造。

總結

圖 MOSFS多源匯聚相容多種儲存

透過前面的介紹,可以看到,依靠MOSFS強大的符號連結特性與遷移工具,執行簡單的操作步驟即可完成對HDFS的納管與資料遷移,讓MOSFS具備多種場景下存算分離架構平滑落地的能力。在涉及老資料遷移的場景中,納管遷移對業務的影響也僅僅在於一次配置修改與計算元件重啟,對客戶的業務系統影響較小。同時,MOSFS的底座基於杉巖資料高效能儲存引擎,還具備更多場景的資料納管與連通能力。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69984952/viewspace-2845604/,如需轉載,請註明出處,否則將追究法律責任。

相關文章