Lei (Eddy) Xu created HADOOP-11724: -------------------------------------- Summary: DistCp throws NPE when the target directory is root. Key: HADOOP-11724 URL: https://issues.apache.org/jira/browse/HADOOP-11724 Project: Hadoop Common Issue Type: Bug Affects Versions: 2.6.0 Reporter: Lei (Eddy) Xu Assignee: Lei (Eddy) Xu Priority: Minor
Distcp throws NPE when the target directory is root. It is due to {{CopyCommitter#cleanupTempFiles}} attempts to delete parent directory of root, which is {{null}}: {code} $ hadoop distcp pom.xml hdfs://localhost/ 15/03/17 11:17:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 15/03/17 11:17:45 INFO tools.DistCp: Input Options: DistCpOptions{atomicCommit=false, syncFolder=false, deleteMissing=false, ignoreFailures=false, maxMaps=20, sslConfigurationFile='null', copyStrategy='uniformsize', sourceFileListing=null, sourcePaths=[pom.xml], targetPath=hdfs://localhost/, targetPathExists=true, preserveRawXattrs=false} 15/03/17 11:17:45 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id 15/03/17 11:17:45 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId= 15/03/17 11:17:45 INFO Configuration.deprecation: io.sort.mb is deprecated. Instead, use mapreduce.task.io.sort.mb 15/03/17 11:17:45 INFO Configuration.deprecation: io.sort.factor is deprecated. Instead, use mapreduce.task.io.sort.factor 15/03/17 11:17:45 INFO jvm.JvmMetrics: Cannot initialize JVM Metrics with processName=JobTracker, sessionId= - already initialized 15/03/17 11:17:45 INFO mapreduce.JobSubmitter: number of splits:1 15/03/17 11:17:45 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local992233322_0001 15/03/17 11:17:46 INFO mapreduce.Job: The url to track the job: http://localhost:8080/ 15/03/17 11:17:46 INFO tools.DistCp: DistCp job-id: job_local992233322_0001 15/03/17 11:17:46 INFO mapreduce.Job: Running job: job_local992233322_0001 15/03/17 11:17:46 INFO mapred.LocalJobRunner: OutputCommitter set in config null 15/03/17 11:17:46 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1 15/03/17 11:17:46 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.tools.mapred.CopyCommitter 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Waiting for map tasks 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Starting task: attempt_local992233322_0001_m_000000_0 15/03/17 11:17:46 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1 15/03/17 11:17:46 INFO util.ProcfsBasedProcessTree: ProcfsBasedProcessTree currently is supported only on Linux. 15/03/17 11:17:46 INFO mapred.Task: Using ResourceCalculatorProcessTree : null 15/03/17 11:17:46 INFO mapred.MapTask: Processing split: file:/tmp/hadoop/mapred/staging/lei2046334351/.staging/_distcp-1889397390/fileList.seq:0+220 15/03/17 11:17:46 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1 15/03/17 11:17:46 INFO mapred.CopyMapper: Copying file:/Users/lei/work/cloudera/s3a_cp_target/pom.xml to hdfs://localhost/pom.xml 15/03/17 11:17:46 INFO mapred.CopyMapper: Skipping copy of file:/Users/lei/work/cloudera/s3a_cp_target/pom.xml to hdfs://localhost/pom.xml 15/03/17 11:17:46 INFO mapred.LocalJobRunner: 15/03/17 11:17:46 INFO mapred.Task: Task:attempt_local992233322_0001_m_000000_0 is done. And is in the process of committing 15/03/17 11:17:46 INFO mapred.LocalJobRunner: 15/03/17 11:17:46 INFO mapred.Task: Task attempt_local992233322_0001_m_000000_0 is allowed to commit now 15/03/17 11:17:46 INFO output.FileOutputCommitter: Saved output of task 'attempt_local992233322_0001_m_000000_0' to file:/tmp/hadoop/mapred/staging/lei2046334351/.staging/_distcp-1889397390/_logs/_temporary/0/task_local992233322_0001_m_000000 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Copying file:/Users/lei/work/cloudera/s3a_cp_target/pom.xml to hdfs://localhost/pom.xml 15/03/17 11:17:46 INFO mapred.Task: Task 'attempt_local992233322_0001_m_000000_0' done. 15/03/17 11:17:46 INFO mapred.LocalJobRunner: Finishing task: attempt_local992233322_0001_m_000000_0 15/03/17 11:17:46 INFO mapred.LocalJobRunner: map task executor complete. 15/03/17 11:17:46 INFO mapred.CopyCommitter: Remove parent: null for hdfs://localhost/ 15/03/17 11:17:46 WARN mapred.CopyCommitter: Unable to cleanup temp files java.lang.NullPointerException at org.apache.hadoop.fs.Path.<init>(Path.java:104) at org.apache.hadoop.fs.Path.<init>(Path.java:93) at org.apache.hadoop.tools.mapred.CopyCommitter.deleteAttemptTempFiles(CopyCommitter.java:141) at org.apache.hadoop.tools.mapred.CopyCommitter.cleanupTempFiles(CopyCommitter.java:130) at org.apache.hadoop.tools.mapred.CopyCommitter.commitJob(CopyCommitter.java:83) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:538) 15/03/17 11:17:46 INFO mapred.CopyCommitter: Cleaning up temporary work folder: file:/tmp/hadoop/mapred/staging/lei2046334351/.staging/_distcp-1889397390 15/03/17 11:17:47 INFO mapreduce.Job: Job job_local992233322_0001 running in uber mode : false 15/03/17 11:17:47 INFO mapreduce.Job: map 100% reduce 0% 15/03/17 11:17:47 INFO mapreduce.Job: Job job_local992233322_0001 completed successfully 15/03/17 11:17:47 INFO mapreduce.Job: Counters: 22 File System Counters FILE: Number of bytes read=103917 FILE: Number of bytes written=363277 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 HDFS: Number of bytes read=0 HDFS: Number of bytes written=0 HDFS: Number of read operations=8 HDFS: Number of large read operations=0 HDFS: Number of write operations=0 Map-Reduce Framework Map input records=1 Map output records=1 Input split bytes=151 Spilled Records=0 Failed Shuffles=0 Merged Map outputs=0 GC time elapsed (ms)=14 Total committed heap usage (bytes)=163577856 File Input Format Counters Bytes Read=252 File Output Format Counters Bytes Written=70 org.apache.hadoop.tools.mapred.CopyMapper$Counter BYTESSKIPPED=23491 SKIP=1 {code} The distcp task can still success. -- This message was sent by Atlassian JIRA (v6.3.4#6332)