Выдаленне файла/папкі з Hadoop

Я бег ОЙ актыўнасці ўнутры лог-файлы аналізу Pipeline дадзеных, і я атрымліваю наступнае паведамленне пра памылку, калі мая <�моцнага> трубаправоднай трывае няўдачу :

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?

17

7 адказы

Калі вы кажаце, выдаліць з Hadoop, вы сапраўды маеце на ўвазе выдаліць з HDFS.

Каб выдаліць нешта з HDFS зрабіць адзін з двух

З каманднага радка:

  • Састарэлы спосаб:

<�Код> Hadoop ДФС -rmr HDFS://шлях/да/файлу

  • Новы спосаб (з Hadoop 2.4.1):

<�Код> HDFS ДФС -rm -r HDFS://шлях/да/файлу

Або ад Java:

FileSystem fs = FileSystem.get(getConf());
fs.delete(new Path("path/to/file"), true);//delete file, true for recursive 
49
дададзена
org.apache.hadoop.fs.FileSystem
дададзена аўтар David Portabella, крыніца
як правіла, вы проста паказваеце HDFS://галоўная/Hadoop/ТЭМП-выхад-s3copy, бо файлы на HDFS часта реплицируются на некалькі вузлоў. Вы робіце гэта на адным вузле?
дададзена аўтар greedybuddha, крыніца
Добра, калі гэтая тэчка знаходзіцца на HDFS, то ён павінен працаваць. Хоць шлях, які вы далі прымушае мяне думаць, яго не на HDFS наогул, а замест гэтага проста лакальная тэчка. Вы робіце гэта праз камандны радок або Java?
дададзена аўтар greedybuddha, крыніца
Таму выкарыстоўваць версію каманднага радка Hadoop Dfs -rmr HDFS://галоўная/Hadoop/Тэмп-выхад-s3copy . Калі гэта не спрацуе, гэта таму, што гэта не на HDFS файлавай сістэмы. Калі тое выпадак .. Вы можаце выкарыстоўваць Hadoop DFS -rmr файл://галоўная/Hadoop/Тэмп-выхад-s3copy , ці проста UNIX ГТ -r
дададзена аўтар greedybuddha, крыніца
Гэта сапраўды залежыць ад версіі Hadoop АПА. Проста выкарыстоўвайце ўсё, што трэба, каб атрымаць бягучы configuraiton, калі тое fs.getConfg затым выкарыстоўваць.
дададзена аўтар greedybuddha, крыніца
як мы можам дасягнуць жа з пітонам?
дададзена аўтар MapReddy, крыніца
Гэта не лакальная папка, таму я ўпэўнены, што ён знаходзіцца ў Hadoop. Я паспрабую гэта і паглядзім, што адбудзецца. Дзякуй!
дададзена аўтар cevallos.valtira, крыніца
Гэта было сапраўды дзіўна.
дададзена аўтар cevallos.valtira, крыніца
Я звязаўся з падтрымкай AWS і, здавалася, што праблема была ў тым, што файлы часопісаў я аналізуюць былі вельмі вялікімі, і стварылі праблемы з памяццю. Я дадаў да майго вызначэнню трубаправода «masterInstanceType»: «m1.xlarge» у раздзеле EMRCluster, і яна працавала. дзякуй
дададзена аўтар cevallos.valtira, крыніца
Так ён працаваў у першы раз, калі я запусціць EMRActivity. Я бягу яшчэ раз, выкарыстоўваючы той жа клас Java, такую ​​ж канфігурацыю трубаправодаў, але розныя даты і яна не працуе. Я атрымліваю тую ж самую памылку. Адзінае адрозненне, якое я бачу ў ліках ў HDFS: //10.208.42.127: 9000/галоўная/Hadoop/Тэмп-выхад-s3copy ўжо існуе. Кожны новы раз я бягу Pipeline, я атрымліваю іншы нумар. Я не ведаю, што гэта значыць. Я прапанаваў выключыць выхад з S3, але яна да гэтага часу не ўдалося.
дададзена аўтар cevallos.valtira, крыніца
шлях/да/файл «10.208.42.127:9000/home/hadoop/temp-output-s3copy»? Дзякуй!
дададзена аўтар cevallos.valtira, крыніца
З Java Вы мелі на ўвазе FileSystem ФС = FileSystem.get (fs.getConf ());? Я дадаў fs.getConf ()
дададзена аўтар cevallos.valtira, крыніца
Im стварэнне трубаправода праз камандны радок, але мой LogAnalyzer робіцца ў Java
дададзена аўтар cevallos.valtira, крыніца
Так. Толькі адзін вузел
дададзена аўтар cevallos.valtira, крыніца
Я не правяраў яшчэ. Маё пытанне я павінен выкарыстоўваць «10.208.42.127:9000/home/hadoop/temp-output-s3copy», як шлях/да/файлу?
дададзена аўтар cevallos.valtira, крыніца

Каб выдаліць файл з HDFS можна выкарыстоўваць ніжэй дадзенай каманды:

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

Каб выдаліць тэчку з HDFS можна выкарыстоўваць ніжэй дадзенай каманды:

hadoop fs -rm -r -skipTrash /folder_name

Вы павінны выкарыстоўваць -skipTrash варыянт у адваротным выпадку памылка будзе прапанавана.

15
дададзена

З Scala:

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

SC з'яўляецца SparkContext

7
дададзена
Толькі тое, што я шукаў: ўключае рэкурсіўны сцяг і ад sparkContext.
дададзена аўтар javadba, крыніца

To delete a file from hdfs use the command: hadoop fs -rm -r /FolderName

2
дададзена

З каманднага радка:

 hadoop fs -rm -r /folder
1
дададзена

Я звязаўся з падтрымкай AWS і, здавалася, што праблема была ў тым, што файлы часопісаў я аналізуюць былі вельмі вялікімі, і стварылі праблемы з памяццю. Я дадаў да майго вызначэнню трубаправода «masterInstanceType»: «m1.xlarge» у раздзеле EMRCluster, і яна працавала.

1
дададзена
Гэта і ёсць адказ на ваша пытанне, але не адказ на назву пытання.
дададзена аўтар gwg, крыніца

Я выкарыстоўваю Hadoop 2.6.0, таго Commande радок «Hadoop ФС -rm -r fileName.hib» выдатна працуе для выдалення любога файла мипа на маім HDFS файл SYS

0
дададзена
ДОБРА. Але гэта ўжо дадзена ў якасці адказу больш за год таму.
дададзена аўтар Alex S, крыніца