本文主要介紹JindoFS的塊存儲模式(Block),以及一些典型的應用場景。

概念

塊存儲模式提供了最為高效的數據讀寫能力和元數據訪問能力,并且能夠支持更加全面的Hadoop文件系統語義。同時,JindoFS也提供了外部客戶端,能夠從集群外部訪問建立在E-MapReduce集群內的JindoFS文件系統。

數據以Block形式存儲在后端存儲OSS上,本地Namespace服務維護元數據信息,該模式在性能上較優,無論是數據性能還是元數據性能。

應用場景

E-MapReduce目前提供了三種大數據存儲系統,E-MapReduce OssFileSystem、E-MapReduce HDFS和E-MapReduce JindoFS,其中OssFileSystem和JindoFS都是云上存儲的解決方案,下表為這三種存儲系統和開源OSS各自的特點。

特點 開源OSS E-MapReduce OssFileSystem E-MapReduce HDFS E-MapReduce JindoFS
存儲空間 海量 海量 取決于集群規模 海量
可靠性
吞吐率因素 服務端 集群內磁盤緩存 集群內磁盤 集群內磁盤
元數據效率
擴容操作 容易 容易 容易 容易
縮容操作 容易 容易 需Decommission 容易
數據本地化 較強

JindoFS塊存儲模式具有以下幾個特點:

  • 海量彈性的存儲空間,基于OSS作為存儲后端,存儲不受限于本地集群,而且本地集群能夠自由彈性伸縮。
  • 能夠利用本地集群的存儲資源加速數據讀取,適合具有一定本地存儲能力的集群,能夠利用有限的本地存儲提升吞吐率,特別對于一寫多讀的場景效果顯著。
  • 元數據操作效率高,能夠與HDFS相當,能夠有效規避OSS文件系統元數據操作耗時以及高頻訪問下可能引發不穩定的問題。
  • 能夠最大限度保證執行作業時的數據本地化,減少網絡傳輸的壓力,進一步提升讀取性能。

配置集群

所有JindoFS相關配置都在Bigboot組件中,配置如下圖所示。

圖 1. 修改配置項
server_config
圖 2. 新增配置項
cong_sel
說明
  • 紅框中為必填的配置項。
  • JindoFS支持多命名空間,本文命名空間以test為例。
參數 參數說明 示例
jfs.namespaces 表示當前JindoFS支持的命名空間,多個命名空間時以逗號隔開。 test
jfs.namespaces.test.uri 表示test命名空間的后端存儲。 oss://oss-bucket/oss-dir
說明 該配置也可以配置到OSS bucket下的具體目錄,該命名空間即以該目錄作為根目錄來讀寫數據。
jfs.namespaces.test.mode 表示test命名空間為塊存儲模式。 block
jfs.namespaces.test.oss.access.key 表示存儲后端OSS的AccessKey ID。 xxxx
說明 考慮到性能和穩定性,推薦使用同賬戶、同region下的OSS bucket作為存儲后端,此時,E-MapReduce集群能夠免密訪問OSS,無需配置AccessKey ID和AccessKey Secret。
jfs.namespaces.test.oss.access.secret 表示存儲后端OSS的AccessKey Secret。

配置完成后保存并部署,然后在SmartData服務中重啟Namespace Service,即可開始使用JindoFS。

restart

存儲策略

JindoFS提供了Storage Policy功能,提供更加靈活的存儲策略適應不同的存儲需求,可以對目錄設置以下四種存儲策略。

策略 策略說明
COLD 表示數據僅在OSS上有一個備份,沒有本地備份,適用于冷數據存儲。
WARM

默認策略。

表示數據在OSS和本地分別有一個備份, 本地備份能夠有效的提供后續的讀取加速。

HOT 表示數據在OSS上有一個備份,本地有多個備份,針對一些最熱的數據提供更進一步的加速效果。
TEMP 表示數據僅有一個本地備份,針對一些臨時性數據,提供高性能的讀寫,但降低了數據的高可靠性,適用于一些臨時數據的存取。

JindoFS提供了Admin工具設置目錄的Storage Policy(默認為 WARM),新增的文件將會以父目錄所指定的Storage Policy進行存儲,使用方式如下所示。

jindo dfsadmin -R -setStoragePolicy [path] [policy]

通過以下命令,獲取某個目錄的存儲策略。

jindo dfsadmin -getStoragePolicy [path]
說明 其中[path] 為設置policy的路徑名稱, -R表示遞歸設置該路徑下的所有路徑。

Admin工具還提供archive命令,實現對冷數據的歸檔。

此命令提供了一種用戶顯式淘汰本地數據塊的方式。Hive分區表按天分區,假如業務上對一周前的分區數據認為不會再經常訪問,那么就可以定期將一周前的分區目錄執行archive,淘汰本地備份,文件備份將僅僅保留在后端OSS上。

Archive命令的使用方式如下:

jindo dfsadmin -archive [path]
說明 [path]為需要歸檔文件的所在目錄路徑。