Package org.apache.hadoop.hdfs

Source Code of org.apache.hadoop.hdfs.TestFastCopyCleanShutdown

package org.apache.hadoop.hdfs;

import java.util.HashSet;
import java.util.Set;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.tools.FastCopy;

import org.junit.AfterClass;

import org.junit.BeforeClass;
import org.junit.Test;

/**
* Ensures that the FastCopy tool does not leave behind any dangling threads.
*/
public class TestFastCopyCleanShutdown {

  private static MiniDFSCluster cluster;
  private static Configuration conf;
  private static FileSystem fs;
  private static int BLOCK_SIZE = 1024;
  private static int MAX_BLOCKS = 20;
  private static long MAX_FILE_SIZE = MAX_BLOCKS * BLOCK_SIZE;
  private static Set<Thread> threadsBefore;

  @BeforeClass
  public static void setUpBeforeClass() throws Exception {
    threadsBefore = new HashSet<Thread>(Thread.getAllStackTraces()
        .keySet());
    conf = new Configuration();
    conf.setInt("ipc.client.connect.max.retries", 3);
    conf.setInt("dfs.block.size", BLOCK_SIZE);
    cluster = new MiniDFSCluster(conf, 3, true, null);
    fs = cluster.getFileSystem();
  }

  @AfterClass
  public static void tearDownAfterClass() throws Exception {
    fs.close();
    cluster.shutdown();
    DFSTestThreadUtil.checkRemainingThreads(threadsBefore);
  }
 
  @Test
  public void testCleanShutdown() throws Exception {
    String filename = "/testCleanShutdown";
    DFSTestUtil.createFile(fs, new Path(filename), MAX_FILE_SIZE, (short) 3,
        System.currentTimeMillis());

    FastCopy fastCopy = new FastCopy(conf);
    try {
      fastCopy.copy(filename, filename + "dst", (DistributedFileSystem) fs,
          (DistributedFileSystem) fs);
    } finally {
      fastCopy.shutdown();
    }
  }
}
TOP

Related Classes of org.apache.hadoop.hdfs.TestFastCopyCleanShutdown

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.