Hadoop クラスターを Amazon ストレージに接続し、ファイルを HDFS にダウンロードしたところ、機能しないことがわかりましs3://
た。インターネットでヘルプを探しているときに、 を使用できることがわかりましたS3n
。使っS3n
てみたら効きました。S3
Hadoop クラスターを使用する場合とHadoop クラスターを使用する場合の違いがわかりませんS3n
。誰か説明してもらえますか?
3 に答える
Amazon S3を使用するための 2 つのファイルシステムは、 Amazon S3に対応するそれぞれのHadoop wiki ページに記載されています。
S3 Native FileSystem (URI スキーム: s3n)
S3 で通常のファイルを読み書きするためのネイティブ ファイルシステム。このファイルシステムの利点は、他のツールで作成された S3 上のファイルにアクセスできることです。逆に、他のツールは、Hadoop を使用して作成されたファイルにアクセスできます。欠点は、S3 によって課されるファイル サイズの 5GB 制限です。このため、HDFS (非常に大きなファイルをサポートする)の代替としては適していません。S3 Block FileSystem (URI スキーム: s3)
S3 がサポートするブロックベースのファイルシステム。HDFS と同様に、ファイルはブロックとして保存されます。これにより、名前変更の効率的な実装が可能になります。このファイルシステムでは、ファイルシステム専用のバケットを作成する必要があります。ファイルを含む既存のバケットを使用したり、他のファイルを同じバケットに書き込んだりしないでください。このファイルシステムに保存されるファイルは 5GB を超える場合がありますが、他の S3 ツールと相互運用することはできません。S3 を Hadoop の Map/Reduce で使用するには 2 つの方法があります 。S3 ブロック ファイルシステムを使用する HDFS の代替として(つまり、非常に大きなファイルをサポートする信頼性の高い分散ファイル システムとして使用する)、またはデータ入力用の便利なリポジトリとして使用できます。いずれかの S3 ファイルシステムを使用して、MapReduce との間でやり取りします。2 番目のケースでは、Map/Reduce フェーズに引き続き HDFS が使用されます。[...]
[鉱山を強調]
そのため、違いは主に 5GB 制限の処理方法に関連しています (オブジェクトのサイズは 1 バイトから 5 テラバイトの範囲であるにもかかわらず、これは 1 回の PUT でアップロードできる最大のオブジェクトです。保存できるデータの量を参照してください)。 ): S3 ブロック ファイルシステム (URI スキーム: s3)を使用すると、5 GB の制限を緩和し、最大 5 TB のファイルを保存できますが、HDFS に取って代わります。
あなたの主な問題は、Hadoop の 2 つの別個の接続ポイントとしてS3
とを使用することに関連していたと思います。「この S3 url にある、外部から読み取り可能な通常のファイル」を意味します。AWS ストレージ クラスター上にある S3 バケットにマッピングされた HDFS ファイル システムを指します。したがって、Amazon ストレージ バケットのファイルを使用していた場合は、S3N を使用している必要があり、それが問題が解決された理由です。@Steffen が追加した情報も素晴らしいです!!S3n
s3n://
s3://
説明は次のとおりです。
最初の S3 ベースの Hadoop ファイルシステムは、Hadoop 0.10.0 (HADOOP-574) で導入されました。これは S3 ブロック ファイルシステムと呼ばれ、URI スキーム s3:// が割り当てられました。この実装では、HDFS の場合と同様に、ファイルはブロックとして保存されます。このファイルシステムによって保存されたファイルは、他の S3 ツールと相互運用できません。これは、AWS コンソールにアクセスして、このファイルシステムによって書き込まれたファイルを検索しようとしても、見つからないということです。代わりに、次の名前のファイルが見つかります。 block_-1212312341234512345などのようなもの。
これらの制限を克服するために、Hadoop 0.18.0 (HADOOP-930) で別の S3-backed ファイルシステムが導入されました。これは S3 ネイティブ ファイルシステムと呼ばれ、URI スキーム s3n:// が割り当てられました。このファイルシステムを使用すると、他のツールで作成された S3 上のファイルにアクセスできます... このファイルシステムが導入されたとき、S3 には 5GB のファイルサイズ制限があったため、このファイルシステムは 5GB 未満のファイルでしか操作できませんでした。2010 年後半、Amazon はファイル サイズの制限を 5GB から 5TB に引き上げました...
S3 ブロック ファイル システムの使用は推奨されなくなりました。Qubole や Amazon EMR などのさまざまな Hadoop-as-a-service プロバイダーは、s3:// と s3n:// URI の両方を S3 ネイティブ ファイルシステムにマッピングして、これを保証します。
そのため、常にネイティブ ファイル システムを使用してください。5Gb の制限はもうありません。s3://
の代わりに入力する必要がある場合もありますがs3n://
、作成したファイルがブラウザのバケット エクスプローラーに表示されることを確認してください。
http://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-plan-file-systems.htmlも参照してください。
以前は、Amazon EMR は URI スキーム s3n で S3 ネイティブ ファイルシステムを使用していました。これは引き続き機能しますが、最高のパフォーマンス、セキュリティ、および信頼性を得るために、s3 URI スキームを使用することをお勧めします。
またs3bfs://
、旧ブロック ファイル システム (以前はs3://
.