TestMiniMRDFSCaching.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:3k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.mapred;
  19. import java.io.*;
  20. import junit.framework.TestCase;
  21. import org.apache.hadoop.hdfs.MiniDFSCluster;
  22. import org.apache.hadoop.fs.FileSystem;
  23. import org.apache.hadoop.mapred.MRCaching.TestResult;
  24. /**
  25.  * A JUnit test to test caching with DFS
  26.  * 
  27.  */
  28. public class TestMiniMRDFSCaching extends TestCase {
  29.   public void testWithDFS() throws IOException {
  30.     MiniMRCluster mr = null;
  31.     MiniDFSCluster dfs = null;
  32.     FileSystem fileSys = null;
  33.     try {
  34.       JobConf conf = new JobConf();
  35.       conf.set("fs.hdfs.impl",
  36.                "org.apache.hadoop.hdfs.ChecksumDistributedFileSystem");      
  37.       dfs = new MiniDFSCluster(conf, 1, true, null);
  38.       fileSys = dfs.getFileSystem();
  39.       mr = new MiniMRCluster(2, fileSys.getName(), 4);
  40.       MRCaching.setupCache("/cachedir", fileSys);
  41.       // run the wordcount example with caching
  42.       TestResult ret = MRCaching.launchMRCache("/testing/wc/input",
  43.                                             "/testing/wc/output",
  44.                                             "/cachedir",
  45.                                             mr.createJobConf(),
  46.                                             "The quick brown foxnhas many sillyn"
  47.                                             + "red fox soxn", false);
  48.       assertTrue("Archives not matching", ret.isOutputOk);
  49.       // launch MR cache with symlinks
  50.       ret = MRCaching.launchMRCache("/testing/wc/input",
  51.                                     "/testing/wc/output",
  52.                                     "/cachedir",
  53.                                     mr.createJobConf(),
  54.                                     "The quick brown foxnhas many sillyn"
  55.                                     + "red fox soxn", true);
  56.       assertTrue("Archives not matching", ret.isOutputOk);
  57.     } finally {
  58.       if (fileSys != null) {
  59.         fileSys.close();
  60.       }
  61.       if (dfs != null) {
  62.         dfs.shutdown();
  63.       }
  64.       if (mr != null) {
  65.         mr.shutdown();
  66.       }
  67.     }
  68.   }
  69.   public static void main(String[] argv) throws Exception {
  70.     TestMiniMRDFSCaching td = new TestMiniMRDFSCaching();
  71.     td.testWithDFS();
  72.   }
  73. }