Return-Path: X-Original-To: apmail-hadoop-user-archive@minotaur.apache.org Delivered-To: apmail-hadoop-user-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5EB75D4C4 for ; Fri, 5 Oct 2012 16:58:53 +0000 (UTC) Received: (qmail 11845 invoked by uid 500); 5 Oct 2012 16:58:48 -0000 Delivered-To: apmail-hadoop-user-archive@hadoop.apache.org Received: (qmail 11734 invoked by uid 500); 5 Oct 2012 16:58:48 -0000 Mailing-List: contact user-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hadoop.apache.org Delivered-To: mailing list user@hadoop.apache.org Received: (qmail 11726 invoked by uid 99); 5 Oct 2012 16:58:48 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Oct 2012 16:58:48 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of dechouxb@gmail.com designates 209.85.216.48 as permitted sender) Received: from [209.85.216.48] (HELO mail-qa0-f48.google.com) (209.85.216.48) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Oct 2012 16:58:40 +0000 Received: by mail-qa0-f48.google.com with SMTP id c11so480354qad.14 for ; Fri, 05 Oct 2012 09:58:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=K8sbnMCaN9Po//dN8KJ0t8x8hJbR6+1y6zsjYe5nYjc=; b=nO4Qx30QI111zKb+dSWEzFpuOAXmNuNMeICn7PCt5ooHQiTRL3k/FiVeKv+Nu5Is3z /Jdj3HRFBduzNabR9BbzXKLm8fJh6TwP50MDjyANDVrY+YFdOYbnPU+B8rvuYrA6HycT 3JUxhHY1oJ264K0LF1BP/Afqp0FhRkZYBSClmcdDlhcQwiYGhooRTKFT1or0HEX+yL/w XJdBvTKMvZn0OnmntoX9cyPEf0b4lpuaVfJ6F2SKedDduGDXLyrLPUDTGnzMPIkX2TXR oN4rSM1t/Bc17SqsZygKpDAPOeZUTRn4819EElMSVPoKQb5UD8ZHzyQHPouLG5OVcZmV owxQ== MIME-Version: 1.0 Received: by 10.49.30.34 with SMTP id p2mr26247653qeh.15.1349456299639; Fri, 05 Oct 2012 09:58:19 -0700 (PDT) Received: by 10.49.71.231 with HTTP; Fri, 5 Oct 2012 09:58:19 -0700 (PDT) Date: Fri, 5 Oct 2012 18:58:19 +0200 Message-ID: Subject: Job jar not removed from staging directory on job failure/how to share a job jar using distributed cache From: Bertrand Dechoux To: user@hadoop.apache.org Content-Type: multipart/alternative; boundary=047d7bdc8d266144ea04cb52c723 --047d7bdc8d266144ea04cb52c723 Content-Type: text/plain; charset=ISO-8859-1 Hi, I am launching my job using the command line and I observed that when the provided input path do not match any files, the jar in the staging repository is not removed. It is removed on job termination (success or failure) but here the job isn't even really started so it may be an edge case. Has anyone seen the same behaviour? (I am using 1.0.3) Here is an extract of the stack trace with hadoop related classes. org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path > does not exist: [removed] > at > org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:235) > at > org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:252) > at > org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:902) > at > org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:919) > at > org.apache.hadoop.mapred.JobClient.access$500(JobClient.java:170) > at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:838) > at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:791) > 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:1059) > at > org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:791) > at org.apache.hadoop.mapreduce.Job.submit(Job.java:465) > at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:494) > Second question is a bit related because one of its consequence would nullify the impact of the above 'bug'. Is it possible to set directly the main job jar as a jar already inside HDFS? >From what I know, the configuration points to a local jar archive which is uploaded each time to the staging repository. The same question was asked in the jira but without clear resolution. https://issues.apache.org/jira/browse/MAPREDUCE-236 My question might be related to https://issues.apache.org/jira/browse/MAPREDUCE-4408 which is resolved for next version. But it seems to be only about uberjar and I am using a standard jar. If it works with a hdfs location, what are the details? Won't it be cleaned during job termination? Why not? Will it also be setup within the distributed cache? Regards Bertrand PS : I know there are others solutions to my problem. I will look at Oozie. And worst case, I can create a FileSystem instance myself to check whether the job should be really launched or not. Both could work but both seem overkill in my context. --047d7bdc8d266144ea04cb52c723 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi,

I am launching my job using the command line and I observed that= when the provided input path do not match any files, the jar in the stagin= g repository is not removed.
It is removed on job termination (success o= r failure) but here the job isn't even really started so it may be an e= dge case.
Has anyone seen the same behaviour? (I am using 1.0.3)

Here is an ex= tract of the stack trace with hadoop related classes.

org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path doe= s not exist: [removed]
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapred= uce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:235)
=A0= =A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapreduce.lib.input.FileInputFormat= .getSplits(FileInputFormat.java:252)
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapred.JobClient.writeNewSplits(= JobClient.java:902)
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapred.Jo= bClient.writeSplits(JobClient.java:919)
=A0=A0=A0=A0=A0=A0=A0 at org.apa= che.hadoop.mapred.JobClient.access$500(JobClient.java:170)
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapred.JobClient$2.run(JobClient= .java:838)
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapred.JobClient$2= .run(JobClient.java:791)
=A0=A0=A0=A0=A0=A0=A0 at java.security.AccessCo= ntroller.doPrivileged(Native Method)
=A0=A0=A0=A0=A0=A0=A0 at javax.security.auth.Subject.doAs(Subject.java:396)=
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.security.UserGroupInformatio= n.doAs(UserGroupInformation.java:1059)
=A0=A0=A0=A0=A0=A0=A0 at org.apac= he.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:791)
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapreduce.Job.submit(Job.java:46= 5)
=A0=A0=A0=A0=A0=A0=A0 at org.apache.hadoop.mapreduce.Job.waitForCompl= etion(Job.java:494)

Second question is a bit related be= cause one of its consequence would nullify the impact of the above 'bug= '.
Is it possible to set directly the main job jar as a jar already inside HDF= S?
From what I know, the configuration points to a local jar archive whi= ch is uploaded each time to the staging repository.

The same questio= n was asked in the jira but without clear resolution.
https://iss= ues.apache.org/jira/browse/MAPREDUCE-236

My question might be re= lated to
https://issues.apache.org/jira/browse/MAPREDUCE-4408
which is resolved for next version. But it seems to be only about uberjar a= nd I am using a standard jar.
If it works with a hdfs location, what are= the details? Won't it be cleaned during job termination? Why not? Will= it also be setup within the distributed cache?

Regards

Bertrand

PS : I know there are others solutions t= o my problem. I will look at Oozie.=20 And worst case, I can create a FileSystem instance myself to check=20 whether the job should be really launched or not. Both could work but=20 both seem overkill in my context. --047d7bdc8d266144ea04cb52c723--