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后續版本。