TestNoDefaultsJobConf.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.conf;
  19. import junit.framework.Assert;
  20. import org.apache.hadoop.mapred.*;
  21. import org.apache.hadoop.fs.Path;
  22. import org.apache.hadoop.fs.FileUtil;
  23. import org.apache.hadoop.io.LongWritable;
  24. import org.apache.hadoop.io.Text;
  25. import java.io.*;
  26. /**
  27.  * This testcase tests that a JobConf without default values submits jobs
  28.  * properly and the JT applies its own default values to it to make the job
  29.  * run properly.
  30.  */
  31. public class TestNoDefaultsJobConf extends HadoopTestCase {
  32.   public TestNoDefaultsJobConf() throws IOException {
  33.     super(HadoopTestCase.CLUSTER_MR, HadoopTestCase.DFS_FS, 1, 1);
  34.   }
  35.   public void testNoDefaults() throws Exception {
  36.     JobConf configuration = new JobConf();
  37.     assertTrue(configuration.get("hadoop.tmp.dir", null) != null);
  38.     configuration = new JobConf(false);
  39.     assertTrue(configuration.get("hadoop.tmp.dir", null) == null);
  40.     Path inDir = new Path("testing/jobconf/input");
  41.     Path outDir = new Path("testing/jobconf/output");
  42.     OutputStream os = getFileSystem().create(new Path(inDir, "text.txt"));
  43.     Writer wr = new OutputStreamWriter(os);
  44.     wr.write("hellon");
  45.     wr.write("hellon");
  46.     wr.close();
  47.     JobConf conf = new JobConf(false);
  48.     //seeding JT and NN info into non-defaults (empty jobconf)
  49.     conf.set("mapred.job.tracker", createJobConf().get("mapred.job.tracker"));
  50.     conf.set("fs.default.name", createJobConf().get("fs.default.name"));
  51.     conf.setJobName("mr");
  52.     conf.setInputFormat(TextInputFormat.class);
  53.     conf.setMapOutputKeyClass(LongWritable.class);
  54.     conf.setMapOutputValueClass(Text.class);
  55.     conf.setOutputFormat(TextOutputFormat.class);
  56.     conf.setOutputKeyClass(LongWritable.class);
  57.     conf.setOutputValueClass(Text.class);
  58.     conf.setMapperClass(org.apache.hadoop.mapred.lib.IdentityMapper.class);
  59.     conf.setReducerClass(org.apache.hadoop.mapred.lib.IdentityReducer.class);
  60.     FileInputFormat.setInputPaths(conf, inDir);
  61.     FileOutputFormat.setOutputPath(conf, outDir);
  62.     JobClient.runJob(conf);
  63.     Path[] outputFiles = FileUtil.stat2Paths(
  64.                            getFileSystem().listStatus(outDir,
  65.                            new OutputLogFilter()));
  66.     if (outputFiles.length > 0) {
  67.       InputStream is = getFileSystem().open(outputFiles[0]);
  68.       BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  69.       String line = reader.readLine();
  70.       int counter = 0;
  71.       while (line != null) {
  72.         counter++;
  73.         assertTrue(line.contains("hello"));
  74.         line = reader.readLine();
  75.       }
  76.       reader.close();
  77.       assertEquals(2, counter);
  78.     }
  79.   }
  80. }