Package com.cloudera.kitten

Source Code of com.cloudera.kitten.TestKittenDistributedShell

/**
* Copyright (c) 2012, Cloudera, Inc. All Rights Reserved.
*
* Cloudera, Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"). You may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for
* the specific language governing permissions and limitations under the
* License.
*/
package com.cloudera.kitten;

import static org.junit.Assert.assertEquals;

import java.io.File;
import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.server.MiniYARNCluster;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import com.cloudera.kitten.client.KittenClient;
import com.cloudera.kitten.util.LocalDataHelper;
import com.google.common.base.Charsets;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.Files;

public class TestKittenDistributedShell {

  private static final Log LOG = LogFactory.getLog(TestKittenDistributedShell.class);

  protected static MiniYARNCluster yarnCluster = null;
  protected static Configuration conf = new Configuration();

  @BeforeClass
  public static void setup() throws InterruptedException, IOException {
    LOG.info("Starting up YARN cluster");
    conf.setInt("yarn.scheduler.fifo.minimum-allocation-mb", 128);
    conf.set("yarn.nodemanager.vmem-pmem-ratio", "20.0");
    if (yarnCluster == null) {
      yarnCluster = new MiniYARNCluster(TestKittenDistributedShell.class.getName(),
          1, 1, 1);
      yarnCluster.init(conf);
      yarnCluster.start();
      conf = yarnCluster.getConfig();
    }
    try {
      Thread.sleep(2000);
    } catch (InterruptedException e) {
      LOG.info("setup thread sleep interrupted. message=" + e.getMessage());
    }  
  }

  @AfterClass
  public static void tearDown() throws IOException {
    if (yarnCluster != null) {
      yarnCluster.stop();
      yarnCluster = null;
    }
  }
 
  @Test
  public void testKittenShell() throws Exception {
    String config = "/lua/distshell.lua";

    // For the outputs
    File tmpFile = new File("/tmp/distshell.out");
    if (tmpFile.exists()) {
      tmpFile.delete();
    }
    //tmpFile.deleteOnExit();

    KittenClient client = new KittenClient(
        ImmutableMap.<String, Object>of(
            "TEST_FILE", tmpFile.getAbsolutePath(),
            "PWD", (new File(".")).getAbsolutePath()));
    conf.set(LocalDataHelper.APP_BASE_DIR, "file:///tmp/");
    client.setConf(conf);
    System.out.println("Running...");
    assertEquals(0, client.run(new String[]{config, "distshell"}));
    assertEquals(12, Files.readLines(tmpFile, Charsets.UTF_8).size());
  }
}
TOP

Related Classes of com.cloudera.kitten.TestKittenDistributedShell

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.