使用 Amazon EMR 的儲存和檔案系統 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon EMR 的儲存和檔案系統

Amazon EMR 和 Hadoop 提供各式各樣的檔案系統,讓您在處理叢集步驟時使用。您可藉由用來存取資料的 URI 字首指定要使用的檔案系統。例如,s3://amzn-s3-demo-bucket1/path 會使用 EMRFS 參考 Amazon S3 儲存貯體。下表列出可用的檔案系統,並提供各檔案系統的最佳使用時機建議。

Amazon EMR 和 Hadoop 在處理叢集時,通常會使用下列檔案系統當中的兩種或多種。HDFS 和 EMRFS 是搭配 Amazon EMR 使用的兩種主要檔案系統。

重要

從 Amazon EMR 5.22.0 版開始,Amazon EMR 僅使用 AWS Signature 第 4 版來驗證對 Amazon S3 的請求。在某些情況下,早期的 Amazon EMR 版本會使用 AWS Signature 第 2 版,除非版本備註指出 Signature 第 4 版僅供使用。如需詳細資訊,請參閱《Amazon Simple Storage Service 開發人員指南》中的驗證請求 (AWS 簽章版本 4)驗證請求AWS (簽章版本 2)

檔案系統 字首 描述
HDFS hdfs:// (或不含字首)

HDFS 是一種分散式且具可擴展性的可攜式檔案系統,適用於 Hadoop。HDFS 的優勢在於能夠感知管理叢集的 Hadoop 叢集節點與管理個別步驟的 Hadoop 叢集節點之間的資料。如需詳細資訊,請參閱 Hadoop 文件

HDFS 是由主節點和核心節點所使用。其中一個優點是速度快;缺點在於它是暫時性儲存,會在叢集結束時回收。最適合用於快取中繼任務流程步驟所產生的結果。

EMRFS s3://

EMRFS 是 Hadoop 檔案系統的實作,用途是從 Amazon EMR 直接將一般檔案讀取和寫入至 Amazon S3。EMRFS 提供將持久性資料儲存在 Amazon S3 的方便性,可讓您與 Hadoop 搭配使用,同時提供 Amazon S3 伺服器端加密、先寫後讀一致性及清單一致性這類功能。

注意

以前,Amazon EMR 使用 s3ns3a 檔案系統。雖然這兩種方式仍然有效,但建議您使用 s3 URI 結構描述以獲得最佳效能、安全性和可靠性。

本機檔案系統

本機檔案系統是指與本機連接的磁碟。當 Hadoop 叢集建立時,每個節點都會從稱為執行個體存放區的預先連接磁碟儲存體中,預先設定區塊隨附的 EC2 執行個體建立。執行個體存放區磁碟區上的資料只會在 EC2 執行個體的週期內保存。執行個體存放區磁碟區非常適合存放不斷變動的暫存資料,例如緩衝區、快取、臨時資料及其他暫存的內容。如需詳細資訊,請參閱 Amazon EC2 執行個體儲存

HDFS 使用本機檔案系統,但 Python 也從本機檔案系統執行,您可以選擇在執行個體儲存體上儲存其他應用程式檔案。

(舊式) Amazon S3 區塊檔案系統 s3bfs://

Amazon S3 區塊檔案系統是舊式檔案儲存系統。我們非常不建議使用此系統。

重要

我們建議您不要使用此檔案系統,因為它可能觸發競爭條件,而造成您的叢集失敗。不過,舊版應用程式可能會需要此系統。

存取檔案系統

您可藉由用來存取資料的統一資源識別符 (URI) 字首指定要使用的檔案系統。以下程序說明如何參考數種不同類型的檔案系統。

存取本機 HDFS
  • 在 URI 中指定 hdfs:/// 字首。Amazon EMR 會將未在 URI 中指定字首的路徑解析成本機 HDFS。例如,下面兩個 URI 都會解析成 HDFS 中相同的位置。

    hdfs:///path-to-data /path-to-data
存取遠端 HDFS
  • 包含 URI 中主節點的 IP 地址,如以下範例所示。

    hdfs://master-ip-address/path-to-data master-ip-address/path-to-data
存取 Amazon S3
  • 使用 s3:// 字首。

    s3://bucket-name/path-to-file-in-bucket
存取 Amazon S3 區塊檔案系統
  • 僅適用於需要 Amazon S3 區塊檔案系統的舊版應用程式。若要使用此檔案系統存取或存放資料,請在 URI 中使用 s3bfs:// 字首。

    Amazon S3 區塊檔案系統是舊式檔案系統,以往用來支援將超過 5 GB 的項目上傳至 Amazon S3。使用 Amazon EMR 透過 AWS Java 開發套件提供的分段上傳功能,您可以將大小高達 5 TB 的檔案上傳至 Amazon S3 原生檔案系統,Amazon S3 區塊檔案系統已棄用。

    警告

    由於此舊式檔案系統可能產生競爭條件,造成檔案系統損毀,因此您應該避免此格式並改用 EMRFS。

    s3bfs://bucket-name/path-to-file-in-bucket