17

ログ ファイルを分析するデータ パイプライン内で EMR アクティビティを実行していますが、パイプラインが失敗すると次のエラーが発生します。

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://10.208.42.127:9000/home/hadoop/temp-output-s3copy already exists
    at org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:121)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:944)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:905)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1132)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:905)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:879)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1316)
    at com.valtira.datapipeline.stream.CloudFrontStreamLogProcessors.main(CloudFrontStreamLogProcessors.java:216)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:187)

そのフォルダーを Hadoop から削除するにはどうすればよいですか?

4

7 に答える 7

52

Hadoop からの削除とは、実際には HDFS からの削除を意味します。

HDFS から何かを削除するには、次の 2 つのうちのいずれかを実行します。

コマンドラインから:

  • 非推奨の方法:

hadoop dfs -rmr hdfs://path/to/file

  • 新しい方法 (hadoop 2.4.1 を使用):

hdfs dfs -rm -r hdfs://path/to/file

またはJavaから:

FileSystem fs = FileSystem.get(getConf());
fs.delete(new Path("path/to/file"), true); // delete file, true for recursive 
于 2013-05-28T17:01:50.630 に答える
15

hdfs からファイルを削除するには、以下のコマンドを使用できます。

hadoop fs -rm -r -skipTrash /path_to_file/file_name

hdfs からフォルダーを削除するには、以下のコマンドを使用できます。

hadoop fs -rm -r -skipTrash /folder_name

-skipTrash オプションを使用する必要があります。そうしないと、エラーが表示されます。

于 2015-07-04T10:31:40.477 に答える
7

スカラの場合:

val fs:FileSystem = FileSystem.get(new URI(filePath), sc.hadoopConfiguration);
fs.delete(new Path(filePath), true) // true for recursive

sc は SparkContext です

于 2015-07-27T16:15:13.940 に答える
2

hdfs からファイルを削除するには、次のコマンドを使用します。 hadoop fs -rm -r /FolderName

于 2015-05-11T12:32:18.570 に答える
0

私はhadoop 2.6.0を使用しています。コマンドライン「hadoop fs -rm -r fileName.hib」は、hdfsファイルsysのhibファイルを削除するために正常に機能します

于 2015-08-10T20:54:44.910 に答える