ストレージおよびファイルシステムの操作 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ストレージおよびファイルシステムの操作

Amazon EMR と Hadoop には、クラスターステップの処理に使用できるさまざまなファイルシステムが用意されています。どのファイルシステムを使用するかは、データへのアクセスに使用する URI のプレフィックスで指定します。たとえば、s3://DOC-EXAMPLE-BUCKET1/pathEMRFS を使用して Amazon S3 バケットを参照します。次の表に、使用可能なファイルシステムと、それぞれの使用が推奨される条件を示します。

Amazon EMR と Hadoop は通常、クラスターを処理するときに以下のうちいくつかのファイルシステムを使用します。Amazon EMR では、HDFS と EMRFS が 2 つの主要なファイルシステムになっています。

重要

Amazon EMR リリースバージョン 5.22.0 から、Amazon EMR はAWSAmazon S3 へのリクエストを認証するための署名バージョン 4。以前の Amazon EMR リリースバージョンではAWSリリースノートに署名バージョン 4 が排他的に使用されていることが示されていない限り、署名バージョン 2 の場合もあります。詳細については、「」を参照してください。リクエストの認証 (AWS署名バージョン 4)およびリクエストの認証 (AWS署名バージョン 2)Amazon Simple Storage Service 開発者ガイド

ファイルシステム Prefix 説明
HDFS hdfs:// (またはプレフィックスなし)

HDFS は分散型のスケーラブルかつポータブルな Hadoop 用ファイルシステムです。HDFS の利点は、クラスターを管理する Hadoop クラスターノードと個別のステップを管理する Hadoop クラスターノードの間でのデータ認識です。詳細については、「Hadoop のドキュメント」を参照してください。

HDFS は、マスターノードおよびコアノードによって使用されます。1 つの利点は高速であることです。欠点は、エフェメラルなストレージであり、クラスターが終了すると回収されてしまうことです。最適な用途は、ジョブフローの中間ステップで得られた結果のキャッシュ場所です。

EMRFS s3://

EMRFS は、通常のファイルを Amazon EMR から Amazon S3 に直接読み書きするために使用される Hadoop ファイルシステムの実装です。EMRFS は Hadoop で使用するために Amazon S3 に永続的なデータを保存できるようにしながら、Amazon S3 のサーバー側の暗号化、"書き込み後の読み取り」整合性、リストの整合性といった機能も提供します。

注記

以前は、Amazon EMR はs3nおよびs3aファイルシステム。どちらもまだ機能しますが、使用することをお勧めしますs3最適なパフォーマンス、セキュリティ、および信頼性のための URI スキーム。

ローカルファイルシステム

ローカルファイルシステムとは、ローカルに接続されているディスクを指します。Hadoop クラスターを作成すると、インスタンスストアと呼ばれる、あらかじめアタッチされたディスクストレージのブロックが事前設定されている EC2 インスタンスから、各ノードが作成されます。インスタンスストアボリューム上のデータは、EC2 インスタンスの存続中のみ使用できます。インスタンスストアボリュームは、バッファやキャッシュ、作業データのように絶えず変化する一時的データを保存するのに最適です。詳細については、「」を参照してください。Amazon EC2 インスタンスストレージ

(レガシーの) Amazon S3 ブロックファイルシステム s3bfs://

Amazon S3 ブロックファイルシステムは、レガシーのファイル保管システムです。このシステムは、使用しないことを強くお勧めします。

重要

このファイルシステムは、クラスター障害の原因となる競合状態を引き起こすことがあるため、利用はお勧めしません。ただし、レガシーアプリケーションでは必要になることがあります。

ファイルシステムへのアクセス

どのファイルシステムを使用するかは、データへのアクセスに使用するユニフォームリソースアイデンティファイア(URI)のプレフィックスで指定します。次の手順は、数種類のファイルシステムを参照する方法を示しています。

ローカルの HDFS にアクセスするには

  • [] を指定します。hdfs:///接頭辞を URI に追加します。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 が提供するマルチパートアップロード機能では、AWSJava SDK では、最大 5 TB のサイズのファイルを Amazon S3 ネイティブファイルシステムにアップロードできます。Amazon S3 ブロックファイルシステムは廃止されました。

    警告

    このレガシーファイルシステムは競合状態を引き起こす可能性があり、それによってファイルシステムが破壊されるおそれがあるため、この形式は避け、代わりに EMRFS を使用してください。

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