SmartData組件是EMR Jindo引擎的存儲部分,為EMR各個計算引擎提供統一的存儲、緩存、計算優化以及功能擴展。SmartData組件主要包括JindoFS,JindoTable和相關工具集。本文介紹SmartData(3.1.x)版本的更新內容。
背景信息
SmartData 3.1.x版本使用時,限制信息如下:
- JindoFS Cache模式支持元數據緩存,修改meta-cache開關,即可啟用緩存模式,但僅建議在訓練場景下打開使用,不建議在分析場景下使用(避免因配置使用不當導致跟其他寫入路徑出現不同步的情況)。
- JindoFS Namespace名稱,僅可使用字母、數字和中劃線(-)。
- Jindo DistCp目前支持的大文件最大不能超過78 GB。
- JindoFS Block模式雖然支持checksum功能,但Jindo DistCp暫不支持checksum功能。
功能變更
JindoFS存儲優化
- 支持文件的checksum功能,對齊開源HDFS checksum相關接口,支持MD5MD5CRC和COMPOSITE_CRC兩種算法;并且針對MD5MD5CRC算法實現了可傳入block size的擴展接口以及支持相應的Shell命令,從而能夠更好地支持和HDFS文件的比對。
- 文件透明壓縮功能,支持對目錄設置壓縮策略,對目錄下新寫入的文件數據塊進行壓縮后存儲到OSS后端存儲上,對于一些高壓縮比的數據,可以大幅節省存儲空間以及讀寫數據量。
- 支持寫文件flush語義,調用flush接口后能夠保證文件數據持久化到當前位置,并且可讀。
- 解決了
hadoop fs -ls -R
命令在文件目錄層級深,目錄很多的情況下,出現由于線程處于等待狀態致使命令無法執行的問題。 - 增強了
hadoop fs -stat
命令,支持顯示atime和privilege等。 - 增加了Jindo HDFS客戶端路徑改寫功能,以減少集群遷移時修改路徑的工作量。
詳情請參見改寫Jindo HDFS客戶端路徑。
JindoFS緩存優化
- 針對機器學習訓練場景提供小文件緩存優化,大幅提升海量小文件的緩存效率和讀取性能。
- 提供小文件目錄預加載
cache
命令,大幅提升預加載效率。 - 支持數據緩存自動觸發功能,您可以通過設置需要跟蹤的目標目錄以及時間間隔,每隔相應的時間間隔,系統自動發現用戶目錄下的新增文件,并自動觸發Cache操作。
JindoTable計算優化
- JindoTable Dump TF格式支持二維數組。
- Jindo mc dump支持Gzip壓縮,可以使用
-c
參數。
JindoManager系統管理
增加了JindoManager服務,集中負責Jindo系統的運維管理以及狀態監控等附加功能,提供了Web UI服務,以及查看各項Jindo系統狀態。
JindoTools工具集
- Jindo DistCp工具針對小文件優化了Job Commiter的邏輯,大幅減少OSS的請求次數,提升大量小文件情況下DistCp的性能。
- Jindo DistCp工具優化了文件分批,實現了更加合理的分批策略,提升了整體性能。
JindoFS生態支持
- Flink流式作業可恢復性地寫入JindoFS,支持Block與Cache兩種模式。結合可重發的數據源(例如Kafka),可以實現Exactly_Once語義。
- Flink實現熵注入功能。流式作業寫入OSS或JindoFS時(Block與Cache兩種模式均可),支持寫入路徑的熵注入(entropy injection)功能,即可以使用隨機字符串匹配替換路徑中的特定部分。該功能有利于提高寫入效率。
詳情請參見支持Flink可恢復性寫入JindoFS或OSS。
- 支持JindoFS Tensorflow Connector,通過實現Tensorflow Filesystem,支持原生的Tensorflow IO接口。支持Tensorflow 1.15及后續版本和Tensorflow 2.3后續版本。