s3-dist-cp を使用して S3 から HDFS に、またはその逆にファイルをコピーする EMR ステップで EMR クラスターを生成しました。このクラスターはオンデマンド クラスターであるため、IP を追跡していません。
最初の EMR ステップは次のとおりです。
hadoop fs -mkdir /input
- このステップは正常に完了しました。
2 番目の EMR ステップは次のとおりです。以下は、使用しているコマンドです。
s3-dist-cp --s3Endpoint=s3.amazonaws.com --src=s3://<bucket-name>/<folder-name>/sample.txt --dest=hdfs:///input
- このステップは失敗しました
次の例外エラーが発生します。
エラー: java.lang.IllegalArgumentException: java.net.UnknownHostException: org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:378) の sample.txt org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies) .java:310) org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:176) org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:678) org.apache.hadoop.hdfs .DFSClient.(DFSClient.java:619) org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:149) org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2717) 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$キャッシュ。get(FileSystem.java:2733) org.apache.hadoop.fs.FileSystem.get(FileSystem.java:377) org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) 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) org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:635) で org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:390) で 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) org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) で 原因: java.net.UnknownHostException: sample.txt
しかし、このファイルは S3 に存在し、EMR の Spark アプリケーションから読み取ることができます。