3

Amazon s3 のバケットに保存したテキスト ファイルに対して Map reduce WordCount ジョブを実行しようとしています。map reduce フレームワークが Amazon と通信するために必要なすべての認証をセットアップしましたが、このエラーが発生したまま実行を続けています。なぜこれが起こっているのですか?

13/01/20 13:22:15 ERROR security.UserGroupInformation:
PriviledgedActionException as:root
cause:org.apache.hadoop.mapred.InvalidInputException: Input path does
not exist: s3://name-bucket/test.txt
Exception in thread "main"
org.apache.hadoop.mapred.InvalidInputException: Input path does not
exist: s3://name-bucket/test.txt
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:197)
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:208)
    at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:989)
    at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:981)
    at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:174)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:897)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:850)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:416)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:850)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:824)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1261)
    at org.myorg.WordCount.main(WordCount.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
4

1 に答える 1

7

s3実際には、プロトコルをに置き換える必要がありますs3n。これらは、異なるプロパティを持つ 2 つの異なるファイルシステムです。

  • s3n は s3 Native Filesystem : S3 で通常のファイルを読み書きするためのネイティブ ファイルシステムです。このファイルシステムの利点は、他のツールで作成された S3 上のファイルにアクセスできることです。逆に、他のツールは、Hadoop を使用して作成されたファイルにアクセスできます。欠点は、S3 によって課されるファイル サイズの 5 GB 制限です。このため、HDFS (非常に大きなファイルをサポートする) の代替としては適していません。
  • s3 はブロック ファイルシステムです。S3 によってサポートされるブロックベースのファイルシステムです。HDFS と同様に、ファイルはブロックとして保存されます。これにより、名前変更の効率的な実装が可能になります。このファイルシステムでは、ファイルシステム専用のバケットを作成する必要があります。ファイルを含む既存のバケットを使用したり、他のファイルを同じバケットに書き込んだりしないでください。このファイルシステムによって保存されるファイルは 5GB を超える場合がありますが、他の S3 ツールと相互運用することはできません。

ソース

あなたの場合、バケットはおそらくs3nファイルシステムを使用しています。それがデフォルトだと思います。私が使用するバケットのほとんどもs3n. だからあなたは使うべきですs3n://name-bucket/test.txt

于 2013-01-21T00:04:52.487 に答える