[ https://issues.apache.org/jira/browse/HBASE-17970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15988199#comment-15988199 ]
Duo Zhang commented on HBASE-17970: ----------------------------------- And I've found a difference between master and branch-1. On master, we will start MR cluster first but on branch-1 we will start HBase cluster first. The difference is that if we start MR cluster first, we will use LocalFileSystem rather than the mini DFS cluster as the working file system for MR cluster. And if we use the mini DFS cluster then the problem is gone? The mini dfs cluster is per instance, different tests will not share the same directory then. Let me prepare a patch to try it. > Set yarn.app.mapreduce.am.staging-dir when starting MiniMRCluster > ----------------------------------------------------------------- > > Key: HBASE-17970 > URL: https://issues.apache.org/jira/browse/HBASE-17970 > Project: HBase > Issue Type: Bug > Components: test > Reporter: Duo Zhang > Assignee: Duo Zhang > Attachments: HBASE-17970.patch > > > As discussed in mailing-list > https://builds.apache.org/job/HBASE-Flaky-Tests/15333/artifact/hbase-server/target/surefire-reports/org.apache.hadoop.hbase.snapshot.TestMobExportSnapshot-output.txt/*view*/ > Test*ExportSnapshot will fail if they are executed concurrently because of > they share the same staging directory. > {noformat} > java.io.FileNotFoundException: File > file:/tmp/hadoop-yarn/staging/jenkins/.staging/job_1492809330233_0001/job.split > does not exist > at > org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:606) > at > org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:819) > at > org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:596) > at > org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:421) > at org.apache.hadoop.yarn.util.FSDownload.copy(FSDownload.java:253) > at > org.apache.hadoop.yarn.util.FSDownload.access$000(FSDownload.java:63) > at org.apache.hadoop.yarn.util.FSDownload$2.run(FSDownload.java:361) > at org.apache.hadoop.yarn.util.FSDownload$2.run(FSDownload.java:359) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:422) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) > at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:359) > at org.apache.hadoop.yarn.util.FSDownload.call(FSDownload.java:62) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > {noformat} > We need to set yarn.app.mapreduce.am.staging-dir to let hem use different > directories. -- This message was sent by Atlassian JIRA (v6.3.15#6346)