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)功能,即可以使用隨機字串匹配替換路徑中的特定部分。該功能有利於提高寫入效率。
- 支援JindoFS Tensorflow Connector,通過實現Tensorflow Filesystem,支援原生的Tensorflow IO介面。支援Tensorflow 1.15及後續版本和Tensorflow 2.3後續版本。