HDFS 實踐 | 京東 HDFS EC 應用解密

Tech

導讀
為了實現(xiàn)降本增效,京東HDFS 團隊在 EC 功能的移植、測試與上線過程中,基于自身現(xiàn)狀采取的一些措施并最終實現(xiàn)平滑上線。同時自研了一套數(shù)據(jù)生命周期管理系統(tǒng),對熱溫冷數(shù)據(jù)進行自動化管理。在研發(fā)落地過程中還構建了三維一體的數(shù)據(jù)校驗機制,為 EC 數(shù)據(jù)的正確性提供了強有力的技術保障。
本文詳細介紹在研發(fā)一個復雜系統(tǒng)時,如何基于實際情況進行取舍,并確立行動準則。在功能上線過程中,要保持對線上系統(tǒng)的敬畏,確保上線與回滾不會導致元數(shù)據(jù)損壞。此外,要深刻認識系統(tǒng)的核心職責,對于存儲系統(tǒng)務必加強技術保障,確保數(shù)據(jù)的安全與可靠,不能丟不能錯。

01
升級 or 移植
按功能模塊移植代碼。 移植過程中,盡可能的保持社區(qū)代碼原有樣式,以便于后續(xù)apply patch。 對移植過程沒有任何幫助的代碼,不移植。 對于接口,優(yōu)先移植,而且與社區(qū)保持一致。 測試用例必須移植并跑通。 對于目前不移植或者為了簡化移植工作而去掉的代碼,一定不能影響現(xiàn)有場景的功能,并用TODO標識未來會修改。
02
項目質(zhì)量保障
移植工作不能改變原有接口和命令行語義,甚至接口和命令行的返回信息也要確保與 2.7.1 版本一致。 一般的集群運維操作能夠正常進行,比如 DN 節(jié)點上下線,NN 升級與回退。 在破壞性測試中,集群的健壯性不受影響,比如磁盤故障,網(wǎng)絡異常,數(shù)據(jù)損壞。 驗證集群兼容性,NN/DN/JN 逐步升級和回退不能影響集群的服務能力。 校驗數(shù)據(jù)正確性,在測試過程中要保證 EC 數(shù)據(jù)沒有被損壞,丟塊后重建的數(shù)據(jù)是正確的。 性能對比測試,引入 EC 功能后,通過壓測對比,確保集群,特別是 NN,性能不受影響。
03
升級與回滾


04
數(shù)據(jù)生命周期管理
在不修改 NN的前提下,任務調(diào)度系統(tǒng)無法實時轉(zhuǎn)換新增數(shù)據(jù)。 如果在數(shù)據(jù)拷貝過程中發(fā)生錯誤,只能重頭開始轉(zhuǎn)換。 如果要對數(shù)據(jù)進行過濾,只支持對文件路徑的過濾。 如果把轉(zhuǎn)換后的數(shù)據(jù)移到源目錄時,沒法進行原子交換,用戶程序會在此間隙拋出找不到文件的異常。 此外,HDFS 為目錄和文件設置了用戶組權限以及時間戳,對所有數(shù)據(jù)進行拷貝時,需要給拷貝程序賦超級權限,會引入一定的安全風險,現(xiàn)有方案也不能保證轉(zhuǎn)換后的文件和原始文件屬性保持一致。

05
全方位的數(shù)據(jù)完整性保障

06
總結與展望
HDFS-14171,影響 NN 啟動速度。 HDFS-14353, 修復 xmitsInProgress 指標異常。 HDFS-14523, 去除 NetworkTopology 多余鎖。 HDFS-14849, DN 下線導致 EC 塊無限復制。 HDFS-15240, 修復臟緩存導致數(shù)據(jù)重建錯誤。
京東零售-黃濤

揭秘| 大數(shù)據(jù)計算引擎性能及穩(wěn)定性提升神器!
"多模態(tài)數(shù)字內(nèi)容生成"的技術探索與應用實踐
AI新生:破解人機共存密碼 | 每月一書(福利送書)
一圖看懂未來科技趨勢

評論
圖片
表情
