package com.neverwinterdp.demandspike.yarn;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.apache.hadoop.yarn.server.MiniYARNCluster;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.neverwinterdp.demandspike.DemandSpikeClusterBuilder;
import com.neverwinterdp.hadoop.MiniClusterUtil;
import com.neverwinterdp.hadoop.yarn.app.AppClient;
import com.neverwinterdp.hadoop.yarn.app.AppClientMonitor;
import com.neverwinterdp.server.shell.Shell;
public class DemandSpikeAppMasterContainerUnitTest {
static MiniYARNCluster miniYarnCluster ;
static DemandSpikeClusterBuilder clusterBuilder ;
static protected Shell shell ;
@BeforeClass
static public void setup() throws Exception {
clusterBuilder = new DemandSpikeClusterBuilder() ;
clusterBuilder.start() ;
clusterBuilder.install() ;
shell = clusterBuilder.shell ;
miniYarnCluster = MiniClusterUtil.createMiniYARNCluster(1);
Thread.sleep(1000);
Configuration conf = miniYarnCluster.getConfig() ;
}
@AfterClass
static public void teardown() throws Exception {
miniYarnCluster.stop();
miniYarnCluster.close();
clusterBuilder.destroy() ;
}
@Test
public void testDemandSpikeApp() throws Exception {
String[] args = {
"--mini-cluster-env",
"--app-name", "NeverwinterDP_DemandSpike_App",
"--app-container-manager", "com.neverwinterdp.demandspike.yarn.master.AsyncDemandSpikeAppMasterContainerManager",
"--app-rpc-port", "63200" ,
"--conf:yarn.resourcemanager.scheduler.address=0.0.0.0:8030",
"--conf:broker-connect=127.0.0.1:7080",
"--conf:max-duration=5000"
} ;
AppClient appClient = new AppClient() ;
AppClientMonitor appMonitor =
appClient.run(args, new YarnConfiguration(miniYarnCluster.getConfig()));
appMonitor.monitor() ;
appMonitor.report(System.out);
Thread.sleep(3000);
clusterBuilder.shell.exec("server metric");
}
}