예제 #1
0
        public virtual void TestEmptyDownload()
        {
            JobConf conf = new JobConf();

            conf.SetClass("fs.mock.impl", typeof(TestLocalDistributedCacheManager.MockFileSystem
                                                 ), typeof(FileSystem));
            URI mockBase = new URI("mock://test-nn1/");

            Org.Mockito.Mockito.When(mockfs.GetUri()).ThenReturn(mockBase);
            Path working = new Path("mock://test-nn1/user/me/");

            Org.Mockito.Mockito.When(mockfs.GetWorkingDirectory()).ThenReturn(working);
            Org.Mockito.Mockito.When(mockfs.ResolvePath(Matchers.Any <Path>())).ThenAnswer(new
                                                                                           _Answer_190());
            Org.Mockito.Mockito.When(mockfs.GetFileStatus(Matchers.Any <Path>())).ThenAnswer(new
                                                                                             _Answer_197());
            Org.Mockito.Mockito.When(mockfs.GetConf()).ThenReturn(conf);
            Org.Mockito.Mockito.When(mockfs.Open(Matchers.Any <Path>(), Matchers.AnyInt())).ThenAnswer
                (new _Answer_206());
            conf.Set(MRJobConfig.CacheFiles, string.Empty);
            conf.Set(MRConfig.LocalDir, localDir.GetAbsolutePath());
            LocalDistributedCacheManager manager = new LocalDistributedCacheManager();

            try
            {
                manager.Setup(conf);
            }
            finally
            {
                manager.Close();
            }
        }
예제 #2
0
            /// <exception cref="System.IO.IOException"/>
            public Job(LocalJobRunner _enclosing, JobID jobid, string jobSubmitDir)
            {
                this._enclosing    = _enclosing;
                this.systemJobDir  = new Path(jobSubmitDir);
                this.systemJobFile = new Path(this.systemJobDir, "job.xml");
                this.id            = jobid;
                JobConf conf = new JobConf(this.systemJobFile);

                this.localFs = FileSystem.GetLocal(conf);
                string user = UserGroupInformation.GetCurrentUser().GetShortUserName();

                this.localJobDir = this.localFs.MakeQualified(new Path(new Path(conf.GetLocalPath
                                                                                    (LocalJobRunner.jobDir), user), jobid.ToString()));
                this.localJobFile = new Path(this.localJobDir, this.id + ".xml");
                // Manage the distributed cache.  If there are files to be copied,
                // this will trigger localFile to be re-written again.
                this.localDistributedCacheManager = new LocalDistributedCacheManager();
                this.localDistributedCacheManager.Setup(conf);
                // Write out configuration file.  Instead of copying it from
                // systemJobFile, we re-write it, since setup(), above, may have
                // updated it.
                OutputStream @out = this.localFs.Create(this.localJobFile);

                try
                {
                    conf.WriteXml(@out);
                }
                finally
                {
                    @out.Close();
                }
                this.job = new JobConf(this.localJobFile);
                // Job (the current object) is a Thread, so we wrap its class loader.
                if (this.localDistributedCacheManager.HasLocalClasspaths())
                {
                    this.SetContextClassLoader(this.localDistributedCacheManager.MakeClassLoader(this
                                                                                                 .GetContextClassLoader()));
                }
                this.profile = new JobProfile(this.job.GetUser(), this.id, this.systemJobFile.ToString
                                                  (), "http://localhost:8080/", this.job.GetJobName());
                this.status = new JobStatus(this.id, 0.0f, 0.0f, JobStatus.Running, this.profile.
                                            GetUser(), this.profile.GetJobName(), this.profile.GetJobFile(), this.profile.GetURL
                                                ().ToString());
                this._enclosing.jobs[this.id] = this;
                this.Start();
            }
예제 #3
0
        public virtual void TestDuplicateDownload()
        {
            JobConf conf = new JobConf();

            conf.SetClass("fs.mock.impl", typeof(TestLocalDistributedCacheManager.MockFileSystem
                                                 ), typeof(FileSystem));
            URI mockBase = new URI("mock://test-nn1/");

            Org.Mockito.Mockito.When(mockfs.GetUri()).ThenReturn(mockBase);
            Path working = new Path("mock://test-nn1/user/me/");

            Org.Mockito.Mockito.When(mockfs.GetWorkingDirectory()).ThenReturn(working);
            Org.Mockito.Mockito.When(mockfs.ResolvePath(Matchers.Any <Path>())).ThenAnswer(new
                                                                                           _Answer_234());
            URI      file     = new URI("mock://test-nn1/user/me/file.txt#link");
            Path     filePath = new Path(file);
            FilePath link     = new FilePath("link");

            Org.Mockito.Mockito.When(mockfs.GetFileStatus(Matchers.Any <Path>())).ThenAnswer(new
                                                                                             _Answer_245(filePath));
            Org.Mockito.Mockito.When(mockfs.GetConf()).ThenReturn(conf);
            FSDataInputStream @in = new FSDataInputStream(new TestLocalDistributedCacheManager.MockInputStream
                                                              (Sharpen.Runtime.GetBytesForString("This is a test file\n")));

            Org.Mockito.Mockito.When(mockfs.Open(Matchers.Any <Path>(), Matchers.AnyInt())).ThenAnswer
                (new _Answer_261(@in));
            DistributedCache.AddCacheFile(file, conf);
            DistributedCache.AddCacheFile(file, conf);
            conf.Set(MRJobConfig.CacheFileTimestamps, "101,101");
            conf.Set(MRJobConfig.CacheFilesSizes, "201,201");
            conf.Set(MRJobConfig.CacheFileVisibilities, "false,false");
            conf.Set(MRConfig.LocalDir, localDir.GetAbsolutePath());
            LocalDistributedCacheManager manager = new LocalDistributedCacheManager();

            try
            {
                manager.Setup(conf);
                NUnit.Framework.Assert.IsTrue(link.Exists());
            }
            finally
            {
                manager.Close();
            }
            NUnit.Framework.Assert.IsFalse(link.Exists());
        }