JindoFS是基於阿里雲Object Storage Service,為開源巨量資料生態構建的Hadoop相容檔案系統(Hadoop Compatible File System,HCFS)。JindoFS提供相容Object Storage Service的純用戶端模式(SDK)和緩衝模式(Cache),以支援與最佳化Hadoop和Spark生態巨量資料計算對OSS的訪問;提供Block Storage模式(Block),以充分利用OSS的海量儲存能力和最佳化檔案系統中繼資料的操作。
JindoFS純用戶端模式(SDK)
JindoFS純用戶端模式為Hive和Spark等計算架構提供了訪問阿里雲OSS及其各種操作的最佳化,類似Hadoop社區的OSS FileSystem或S3A FileSystem。此模式不改變檔案或對象在OSS上的組織方式,檔案還是儲存在OSS上,JindoFS只是提供面向Hadoop生態的用戶端串連、擴充、適配和最佳化訪問。您可以使用此模式,上傳JindoFS SDK的JAR包至組件的classpath目錄,簡單易用,無需部署分布式服務。

JindoFS緩衝模式(Cache)
JindoFS緩衝模式(Cache)相容JindoFS純用戶端模式(SDK),同時利用Jindo分布式緩衝能力在計算側為OSS提供緩衝加速,以滿足大規模的分析和訓練吞吐需求。在純用戶端模式(SDK)基礎上,Cache模式支援可選的中繼資料快取和資料分布式緩衝,同時保持資料跟OSS相容和同步。資料緩衝可以基於記憶體、SSD和普通磁碟,以適用不同的計算情境。

JindoFSBlock Storage模式(Block)
JindoFS儲存模式(Block),不僅提供緩衝加速能力,還可以組織、儲存資料和管理檔案中繼資料,類似Apache Hadoop HDFS。在此模式下JindoFS是個獨立的儲存系統,只是檔案塊資料存放區在OSS上。

Cache模式和Block模式對比
兩種模式都把資料存放區在OSS上,同時根據本機快取空間剩餘情況確定是否在本地也放置一份以用於緩衝加速。
兩種模式的本質區別在於,Block Storage模式可以管理目錄和檔案中繼資料,檔案是分成多個Block Storage在OSS上,所以寫到OSS上的是一個一個的檔案塊,而緩衝模式儲存的是整個檔案對象。
三種模式對比
以下從多個維度上介紹JindoFS的純用戶端模式(SDK)、緩衝模式(Cache)和Block Storage模式(Block)的差異。
維度 | JindoFS SDK | JindoFS Cache | JindoFS Block |
維度 | JindoFS SDK | JindoFS Cache | JindoFS Block |
儲存成本 |
|
|
|
彈性 | 高 | 較高 | 支援 |
吞吐 | OSS頻寬。 | OSS頻寬和熱資料緩衝頻寬。 | OSS頻寬、溫資料和熱資料緩衝頻寬。 |
中繼資料 |
|
|
|
營運 | 低 | 一般 需要維護緩衝系統能力。 | 較高 需要維護檔案系統中繼資料服務和緩衝系統。 |
安全 |
|
|
|
使用方式 | 僅支援oss://<oss_bucket>/<oss_dir>/方式,支援跨產品訪問該檔案路徑。 |
Cache模式使用詳情請參見各版本下JindoFS Cache模式的內容。 | 僅支援多Namespace使用方式jfs://<your_namespace>/<path_of_file>,不支援跨產品訪問該檔案路徑,可以開啟緩衝開關。 Block模式使用詳情請參見各版本下JindoFS Block模式的內容。 |
常見問題
- Q:針對典型的資料湖情境,建議採用什麼模式?
A:因為JindoFS SDK和Cache模式完全相容OSSObject Storage Service語義,具有完全的儲存分離架構和彈性靈活性,所以,針對典型的資料湖情境,推薦您使用SDK或者Cache模式以支援巨量資料分析和AI訓練加速。
- Q:為什麼Block模式跟HDFS相比,是更好的HDFS?A:
- HDFS的常規限制為4億,而Block模式中繼資料規模上支撐10億以上的檔案數,大於HDFS的限制,而且在叢集高峰期時效能更為穩定。
- HDFS有Java onheap限制,而Block模式沒有Java onheap和記憶體限制,可以支援更大的資料規模。
- Block模式輕營運,不用擔心壞盤或壞節點,資料1備份放置在OSS上,支援上下線節點。
- 支援對冷資料做透明壓縮和歸檔,使用多種手段進行成本最佳化,對接Object Storage Service,支援EB級資料規模。
- Block模式支援HDFS的一些重要特性。例如,HDFS AuditLog、Ranger整合和資料加密。
- Q:Block模式具有哪些特別的優勢?A:
- Block模式可以管理檔案中繼資料和組織檔案資料,因此可以不局限於OSSObject Storage Service,完全可以滿足各種巨量資料引擎對儲存介面的需求。這些介面包括但不限於Rename的原子性和事務效能力、高效能本地寫入、透明壓縮、truncate、append、flush、sync和snapshot等。這些高階儲存介面對實現完整的POSIX和對接更多的巨量資料引擎到OSS是不可或缺的,例如,Flink、HBase、Kafka和Kudu。其他兩種方式使用OSS也可以對接部分介面,但是能力和優勢會有所不足。
- Block模式在費用上優於其他兩種方式使用OSS。Block模式中,因為全部資料中佔比60%的溫資料和熱資料都在本地有緩衝備份,大部分讀請求都不會通過OSS,所以可以節省一部分費用。