spark org descargar comandos hadoop amazon-web-services amazon-s3 elastic-map-reduce

org - hadoop wikipedia



Borrar archivo/carpeta de Hadoop (7)

Con Scala:

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

sc es el SparkContext

Estoy ejecutando una actividad EMR dentro de un Data Pipeline que analiza los archivos de registro y recibo el siguiente error cuando mi Pipeline falla :

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)

¿Cómo puedo eliminar esa carpeta de Hadoop?


Cuando dice eliminar de Hadoop, realmente quiere decir eliminar de HDFS.

Para borrar algo de HDFS haz uno de los dos

Desde la línea de comando:

  • forma desaprobada:

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

  • nueva forma (con hadoop 2.4.1):

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

O desde java:

FileSystem fs = FileSystem.get(getConf()); fs.delete(new Path("path/to/file"), true); // delete file, true for recursive


Desde la línea de comando:

hadoop fs -rm -r /folder


Me puse en contacto con el soporte de AWS y parecía que el problema era que los archivos de registro que estaba analizando eran muy grandes y eso creaba un problema con la memoria. Agregué a mi definición de tubería "masterInstanceType": "m1.xlarge" en la sección EMRCluster y funcionó.


Para eliminar un archivo de hdfs use el comando: hadoop fs -rm -r /FolderName


Para eliminar un archivo de hdfs, puede usar el siguiente comando:

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

Para eliminar una carpeta de hdfs, puede usar el siguiente comando:

hadoop fs -rm -r -skipTrash /folder_name

Debe utilizar la opción -skipTrash, de lo contrario se le solicitará un error.


Uso hadoop 2.6.0, la línea de comando ''hadoop fs -rm -r fileName.hib'' funciona bien para eliminar cualquier archivo hib en mis archivos de archivos hdfs