Ejemplo n.º 1
0
  @GET
  @Path("manifest/create-hadoop-cluster")
  public ConfigManifest getSample(@Context UriInfo uri) {
    List<Action> actions = new ArrayList<Action>();

    // Install software
    PackageAction install = new PackageAction();
    install.setActionType("install");
    // install.setRole("namenode");
    actions.add(install);
    List<StateEntry> expectedInstallResults = new LinkedList<StateEntry>();
    expectedInstallResults.add(new StateEntry(StateType.PACKAGE, "hadoop", Status.INSTALLED));
    install.setExpectedResults(expectedInstallResults);

    // Install software
    // install = new PackageAction();
    // install.setActionType("install");
    // install.setRole("datanode");
    // actions.add(install);

    // Install software
    // install = new PackageAction();
    // install.setActionType("install");
    // install.setRole("jobtracker");
    // actions.add(install);

    // Install software
    // install = new PackageAction();
    // install.setActionType("install");
    // install.setRole("tasktracker");
    // actions.add(install);

    // Generate Hadoop configuration
    ScriptAction setupConfig = new ScriptAction();
    setupConfig.setScript("/usr/sbin/hadoop-setup-conf.sh");
    int i = 0;
    String[] parameters = new String[9];
    parameters[i++] = "--namenode-url=hdfs://${namenode}:9000/";
    parameters[i++] = "--jobtracker-url=${jobtracker}:9001";
    parameters[i++] = "--conf-dir=/etc/hadoop";
    parameters[i++] = "--hdfs-dir=/grid/0/hadoop/var/hdfs";
    parameters[i++] = "--namenode-dir=/grid/0/hadoop/var/hdfs/namenode";
    parameters[i++] =
        "--mapred-dir=/grid/0/tmp/mapred-local,/grid/1/tmp/mapred-local,/grid/2/tmp/mapred-local,/grid/3/tmp/mapred-local,/grid/4/tmp/mapred-local,/grid/5/tmp/mapred-local";
    parameters[i++] =
        "--datanode-dir=/grid/0/hadoop/var/hdfs/data,/grid/1/hadoop/var/hdfs/data,/grid/2/hadoop/var/hdfs/data,/grid/3/hadoop/var/hdfs/data,/grid/4/hadoop/var/hdfs/data,/grid/5/hadoop/var/hdfs/data";
    parameters[i++] = "--log-dir=/var/log/hadoop";
    parameters[i++] = "--auto";
    setupConfig.setParameters(parameters);
    List<StateEntry> expectedConfigResults = new LinkedList<StateEntry>();
    expectedConfigResults.add(new StateEntry(StateType.PACKAGE, "hadoop-config", Status.INSTALLED));
    setupConfig.setExpectedResults(expectedConfigResults);
    actions.add(setupConfig);

    // Format HDFS
    ScriptAction setupHdfs = new ScriptAction();
    setupHdfs.setRole("namenode");
    setupHdfs.setScript("/usr/sbin/hadoop-setup-hdfs.sh");
    String[] hdfsParameters = new String[2];
    hdfsParameters[0] = "-c";
    hdfsParameters[1] = "oxygen";
    setupHdfs.setParameters(hdfsParameters);
    // Setup dependencies
    List<ActionDependency> dep = new LinkedList<ActionDependency>();
    Set<String> roles = new HashSet<String>();
    List<StateEntry> states = new LinkedList<StateEntry>();
    states.add(new StateEntry(StateType.PACKAGE, "hadoop-config", Status.INSTALLED));
    roles.add("namenode");
    roles.add("datanode");
    roles.add("jobtracker");
    roles.add("tasktracker");
    dep.add(new ActionDependency(roles, states));
    setupHdfs.setDependencies(dep);
    // Setup expected result
    List<StateEntry> expectedFormatResults = new LinkedList<StateEntry>();
    expectedFormatResults.add(new StateEntry(StateType.DAEMON, "hadoop-namenode", Status.STARTED));
    setupHdfs.setExpectedResults(expectedFormatResults);
    actions.add(setupHdfs);

    // Start Datanodes
    DaemonAction dataNodeAction = new DaemonAction();
    dataNodeAction.setDaemonName("hadoop-datanode");
    dataNodeAction.setActionType("start");
    dataNodeAction.setRole("datanode");
    // Setup namenode started dependencies
    dep = new LinkedList<ActionDependency>();
    roles = new HashSet<String>();
    states = new LinkedList<StateEntry>();
    states.add(new StateEntry(StateType.DAEMON, "hadoop-namenode", Status.STARTED));
    roles.add("namenode");
    dep.add(new ActionDependency(roles, states));
    dataNodeAction.setDependencies(dep);
    // Setup expected result
    //    List<StateEntry> expectedDatanodeResults = new LinkedList<StateEntry>();
    //    expectedDatanodeResults.add(new StateEntry(StateType.DAEMON, "hadoop-datanode",
    // Status.STARTED));
    //    dataNodeAction.setExpectedResults(expectedDatanodeResults);
    actions.add(dataNodeAction);

    // Start Jobtracker
    DaemonAction jobTrackerAction = new DaemonAction();
    jobTrackerAction.setDaemonName("hadoop-jobtracker");
    jobTrackerAction.setActionType("start");
    jobTrackerAction.setRole("jobtracker");
    // Setup datanode started dependencies
    dep = new LinkedList<ActionDependency>();
    roles = new HashSet<String>();
    states = new LinkedList<StateEntry>();
    states.add(new StateEntry(StateType.DAEMON, "hadoop-datanode", Status.STARTED));
    roles.add("datanode");
    dep.add(new ActionDependency(roles, states));
    jobTrackerAction.setDependencies(dep);
    // Setup expected result
    //    List<StateEntry> expectedJobtrackerResults = new LinkedList<StateEntry>();
    //    expectedJobtrackerResults.add(new StateEntry(StateType.DAEMON, "hadoop-jobtracker",
    // Status.STARTED));
    //    jobTrackerAction.setExpectedResults(expectedJobtrackerResults);
    actions.add(jobTrackerAction);

    // Start Tasktrackers
    DaemonAction taskTrackerAction = new DaemonAction();
    taskTrackerAction.setDaemonName("hadoop-tasktracker");
    taskTrackerAction.setActionType("start");
    taskTrackerAction.setRole("tasktracker");
    // Setup tasktracker started dependencies
    dep = new LinkedList<ActionDependency>();
    roles = new HashSet<String>();
    states = new LinkedList<StateEntry>();
    states.add(new StateEntry(StateType.DAEMON, "hadoop-jobtracker", Status.STARTED));
    roles.add("jobtracker");
    dep.add(new ActionDependency(roles, states));
    taskTrackerAction.setDependencies(dep);
    // Setup expected result
    //    List<StateEntry> expectedTasktrackerResults = new LinkedList<StateEntry>();
    //    expectedTasktrackerResults.add(new StateEntry(StateType.DAEMON, "hadoop-tasktracker",
    // Status.STARTED));
    //    taskTrackerAction.setExpectedResults(expectedTasktrackerResults);
    actions.add(taskTrackerAction);

    ConfigManifest cm = new ConfigManifest();
    //    try {
    //      cm.setUrl(uri.getAbsolutePath().toURL());
    //    } catch (MalformedURLException e) {
    //      throw new WebApplicationException(500);
    //    }
    cm.setActions(actions);
    return cm;
  }
Ejemplo n.º 2
0
  @GET
  @Path("manifest/delete-cluster")
  public ConfigManifest getDestroyCluster() {
    List<Action> actions = new ArrayList<Action>();
    ScriptAction nuke = new ScriptAction();
    nuke.setScript("ps");
    int i = 0;
    String[] parameters = new String[3];
    parameters[i++] = "ax | grep hms/apps | grep -v grep | cut -b 1-5 | xargs kill -9 || exit 0";
    nuke.setParameters(parameters);
    actions.add(nuke);

    ScriptAction nuke2 = new ScriptAction();
    nuke2.setScript("killall");
    i = 0;
    String[] jsvcParameters = new String[3];
    jsvcParameters[i++] = "-9";
    jsvcParameters[i++] = "jsvc";
    jsvcParameters[i++] = "|| exit 0";
    nuke2.setParameters(jsvcParameters);
    nuke2.setRole("datanode");
    actions.add(nuke2);

    ScriptAction nukePackages = new ScriptAction();
    nukePackages.setScript("rpm");
    i = 0;
    String[] packagesParameters = new String[8];
    packagesParameters[i++] = "-e";
    packagesParameters[i++] = "hadoop";
    packagesParameters[i++] = "||";
    packagesParameters[i++] = "rpm";
    packagesParameters[i++] = "-e";
    packagesParameters[i++] = "hadoop-mapreduce";
    packagesParameters[i++] = "hadoop-hdfs";
    packagesParameters[i++] = "hadoop-common || rm -rf /home/hms/apps/*";
    nukePackages.setParameters(packagesParameters);
    actions.add(nukePackages);
    ScriptAction scrub = new ScriptAction();
    scrub.setScript("rm");
    String[] scrubParameters = new String[2];
    scrubParameters[0] = "-rf";
    scrubParameters[1] = "/grid/[0-3]/hadoop/var";
    scrub.setParameters(scrubParameters);
    actions.add(scrub);

    ConfigManifest cm = new ConfigManifest();
    cm.setActions(actions);
    return cm;
  }