package com.neverwinterdp.scribengin; import java.util.Set; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.hdfs.MiniDFSCluster; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.MiniYARNCluster; import org.junit.After; import org.junit.Before; import com.neverwinterdp.hadoop.MiniClusterUtil; import com.neverwinterdp.registry.Registry; import com.neverwinterdp.registry.RegistryConfig; import com.neverwinterdp.registry.zk.RegistryImpl; import com.neverwinterdp.scribengin.tool.EmbededVMClusterBuilder; import com.neverwinterdp.util.FileUtil; import com.neverwinterdp.vm.HadoopProperties; import com.neverwinterdp.vm.client.YarnVMClient; import com.neverwinterdp.vm.tool.VMClusterBuilder; public class ScribenginYarnIntegrationTest extends ScribenginUnitTest { static { System.setProperty("java.net.preferIPv4Stack", "true") ; System.setProperty("log4j.configuration", "file:src/test/resources/test-log4j.properties") ; } MiniYARNCluster miniYarnCluster ; MiniDFSCluster miniDFSCluster; @Before public void setup() throws Exception { FileUtil.removeIfExist("build/hdfs", false); miniDFSCluster = MiniClusterUtil.createMiniDFSCluster("build/hdfs", 2) ; YarnConfiguration yarnConf = new YarnConfiguration() ; yarnConf.set("io.serializations", "org.apache.hadoop.io.serializer.JavaSerialization"); miniYarnCluster = MiniClusterUtil.createMiniYARNCluster(yarnConf, 1); vmLaunchTime = 3000; //new ThreadDump().start(); super.setup(); } @After public void teardown() throws Exception { super.teardown(); miniYarnCluster.stop(); miniYarnCluster.close(); miniDFSCluster.shutdown(); } @Override protected FileSystem getFileSystem() throws Exception { return miniDFSCluster.getFileSystem(); } @Override protected String getDataDir() { return "/data"; } @Override protected VMClusterBuilder getVMClusterBuilder() throws Exception { HadoopProperties yarnProps = new HadoopProperties() ; yarnProps.put("yarn.resourcemanager.scheduler.address", "localhost:8030"); yarnProps.put("fs.defaultFS", miniDFSCluster.getURI().toString()); Registry registry = new RegistryImpl(RegistryConfig.getDefault()); YarnVMClient vmClient = new YarnVMClient(registry, yarnProps,miniYarnCluster.getConfig()); vmClient.setLocalAppHome("build/release/Scribengin.V2"); VMClusterBuilder builder = new EmbededVMClusterBuilder(vmClient) ; return builder; } static public class ThreadDump extends Thread { public void run() { try { while(true) { Thread.sleep(10000); System.out.println("------------------------------------------------------------------------------------"); Set<Thread> threadSet = Thread.getAllStackTraces().keySet() ; for(Thread thread : threadSet) { if("main".equals(thread.getName())) { System.out.println("Thread: " + thread.getName()); dumpThreadStackTrace(thread); System.out.println(); } } } } catch(InterruptedException ex) { } } private void dumpThreadStackTrace(Thread thread) { StackTraceElement[] elements = thread.getStackTrace(); for(StackTraceElement sel : elements) { System.out.println(sel.toString()); } } } }