/// <exception cref="System.Exception"/>
        private void RunTest(int nNameNodes, int nDataNodes, Configuration conf)
        {
            Log.Info("nNameNodes=" + nNameNodes + ", nDataNodes=" + nDataNodes);
            Log.Info("RUN_TEST -1");
            MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).NnTopology(MiniDFSNNTopology
                                                                                 .SimpleFederatedTopology(nNameNodes)).NumDataNodes(nDataNodes).Build();

            Log.Info("RUN_TEST 0");
            DFSTestUtil.SetFederatedConfiguration(cluster, conf);
            try
            {
                cluster.WaitActive();
                Log.Info("RUN_TEST 1");
                TestFsckWithMultipleNameNodes.Suite s = new TestFsckWithMultipleNameNodes.Suite(cluster
                                                                                                , nNameNodes, nDataNodes);
                for (int i = 0; i < nNameNodes; i++)
                {
                    s.CreateFile(i, 1024);
                }
                Log.Info("RUN_TEST 2");
                string[] urls = new string[nNameNodes];
                for (int i_1 = 0; i_1 < urls.Length; i_1++)
                {
                    urls[i_1] = cluster.GetFileSystem(i_1).GetUri() + FileName;
                    Log.Info("urls[" + i_1 + "]=" + urls[i_1]);
                    string result = TestFsck.RunFsck(conf, 0, false, urls[i_1]);
                    Log.Info("result=" + result);
                    NUnit.Framework.Assert.IsTrue(result.Contains("Status: HEALTHY"));
                }
                // Test viewfs
                //
                Log.Info("RUN_TEST 3");
                string[] vurls = new string[nNameNodes];
                for (int i_2 = 0; i_2 < vurls.Length; i_2++)
                {
                    string link = "/mount/nn_" + i_2 + FileName;
                    ConfigUtil.AddLink(conf, link, new URI(urls[i_2]));
                    vurls[i_2] = "viewfs:" + link;
                }
                for (int i_3 = 0; i_3 < vurls.Length; i_3++)
                {
                    Log.Info("vurls[" + i_3 + "]=" + vurls[i_3]);
                    string result = TestFsck.RunFsck(conf, 0, false, vurls[i_3]);
                    Log.Info("result=" + result);
                    NUnit.Framework.Assert.IsTrue(result.Contains("Status: HEALTHY"));
                }
            }
            finally
            {
                cluster.Shutdown();
            }
            Log.Info("RUN_TEST 6");
        }
Пример #2
0
        /// <exception cref="System.Exception"/>
        private void TestSleepJobInternal(bool useRemoteJar)
        {
            Log.Info("\n\n\nStarting testSleepJob: useRemoteJar=" + useRemoteJar);
            if (!(new FilePath(MiniMRYarnCluster.Appjar)).Exists())
            {
                Log.Info("MRAppJar " + MiniMRYarnCluster.Appjar + " not found. Not running test."
                         );
                return;
            }
            Configuration sleepConf = new Configuration(mrCluster.GetConfig());

            // set master address to local to test that local mode applied iff framework == local
            sleepConf.Set(MRConfig.MasterAddress, "local");
            SleepJob sleepJob = new SleepJob();

            sleepJob.SetConf(sleepConf);
            // job with 3 maps (10s) and numReduces reduces (5s), 1 "record" each:
            Job job = sleepJob.CreateJob(3, numSleepReducers, 10000, 1, 5000, 1);

            job.AddFileToClassPath(AppJar);
            // The AppMaster jar itself.
            if (useRemoteJar)
            {
                Path localJar = new Path(ClassUtil.FindContainingJar(typeof(SleepJob)));
                ConfigUtil.AddLink(job.GetConfiguration(), "/jobjars", localFs.MakeQualified(localJar
                                                                                             .GetParent()).ToUri());
                job.SetJar("viewfs:///jobjars/" + localJar.GetName());
            }
            else
            {
                job.SetJarByClass(typeof(SleepJob));
            }
            job.SetMaxMapAttempts(1);
            // speed up failures
            job.Submit();
            string trackingUrl = job.GetTrackingURL();
            string jobId       = job.GetJobID().ToString();
            bool   succeeded   = job.WaitForCompletion(true);

            NUnit.Framework.Assert.IsTrue(succeeded);
            NUnit.Framework.Assert.AreEqual(JobStatus.State.Succeeded, job.GetJobState());
            NUnit.Framework.Assert.IsTrue("Tracking URL was " + trackingUrl + " but didn't Match Job ID "
                                          + jobId, trackingUrl.EndsWith(Sharpen.Runtime.Substring(jobId, jobId.LastIndexOf
                                                                                                      ("_")) + "/"));
            VerifySleepJobCounters(job);
            VerifyTaskProgress(job);
        }