本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 使用 |
本機檔案系統 |
本機檔案系統是指與本機連接的磁碟。當 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