2017-04-21 1 views
0

s3-dist-cpを使用して、S3からHDFSにファイルをコピーするEMRステップを持つEMRクラスタを生成しました。 このクラスタはオンデマンドクラスタで、私たちはそのIPを追跡していません。実行時にEMRでHDFSパスを使用しない

最初のEMRステップは次のとおりです。 hadoop fs -mkdir /input - このステップは正常に完了しました。

二EMRステップは次のとおりです。 後は私がコマンドで使用して: - :

Error: java.lang.IllegalArgumentException: java.net.UnknownHostException: sample.txt at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:378) at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:310) at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:176) at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:678) at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:619) at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149) at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2717) at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:93) at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2751) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2733) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:377) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) at com.amazon.elasticmapreduce.s3distcp.CopyFilesReducer.reduce(CopyFilesReducer.java:213) at com.amazon.elasticmapreduce.s3distcp.CopyFilesReducer.reduce(CopyFilesReducer.java:28) at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171) at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:635) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:390) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) Caused by: java.net.UnknownHostException: sample.txt

しかし、このファイルはありません

s3-dist-cp --s3Endpoint=s3.amazonaws.com --src=s3://<bucket-name>/<folder-name>/sample.txt --dest=hdfs:///inputをこのステップでは、私は次の例外エラーを取得

をFAILED S3上に存在し、私はEMR上の私のスパークアプリケーションを通してそれを読むことができる。

+0

なぜEMRFSを使用するのではなく、直接HDFS S3マウントポイントを参照してください。このようなエラーは、地域によって発生することがあります。 – Henry

+0

s3EndPoint引数を指定せずにコマンドを実行しようとすると、アカウントに指定されている転送があれば常に転送が行われます。それでもうまくいかなければ、hadoop distcpを一度使ってみてください。 – Chirag

+0

@Chirag:私たちはそれを試み、それは仕事をしなかった。 – sashmi

答えて

1

解決策は、s3-dist-cpを使用している間、ソースと宛先の両方にファイル名を記述しないでください。あなたはsrcディレクトリ内のファイルをフィルタリングする場合は、あなたが--srcPatternオプションを使用することができます

例:S3-のdist-CP --s3Endpoint = s3.amazonaws.com --src = S3:// // --dest = hdfs:/// input/--srcPattern = sample.txt。*

関連する問題