/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.kevoree.library.hadoop; import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.rmi.RemoteException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.mapred.JobConf; import org.apache.hadoop.mapred.JobTracker; import org.kevoree.annotation.*; import org.slf4j.LoggerFactory; import org.slf4j.Logger; /** * * @author sunye */ @Library(name = "Hadoop") @ComponentType public class HadoopJobTracker extends HadoopComponent { private static final Logger LOG = LoggerFactory.getLogger(HadoopJobTracker.class.getName()); private JobTracker tracker; public HadoopJobTracker() { super(); } @Start public void start() throws RemoteException, IOException, InterruptedException { // JobHistory log file //new File("/private/var/log/hadoop/history").mkdirs(); Configuration configuration = this.getConfiguration(); InetAddress i = InetAddress.getLocalHost(); String hostName = i.getHostName(); configuration.set("hadoop.jobtracker", hostName); String jthost = hostName + ":" + configuration.get("hadoop.jobtracker.port"); configuration.set("mapred.job.tracker", jthost); String nnhost = "hdfs://" + hostName + ":" + configuration.get("hadoop.namenode.port"); configuration.set("fs.default.name", nnhost); //configuration.set("mapred.job.tracker.info.bindAddress",null); //configuration.set("mapred.job.tracker.info.port",null); configuration.set("mapred.job.tracker.http.address", "http://" + hostName + ":54314"); configuration.set("hadoop.namenode", hostName); configuration.set("dfs.namenode.http-address", hostName); configuration.set("dfs.info.bindAddress", i.getHostName()); //configuration.set("dfs.info.port", configuration.get("hadoop.namenode.port")); configuration.set("dfs.http.address", "http://" + hostName + ":" + configuration.get("dfs.info.port")); HadoopConfiguration cfg = new HadoopConfiguration(configuration); cfg.writeMapredSite(); new Thread() { public void run() { runTracker(); } }.start(); } @Stop public void stop() throws IOException { if (tracker != null) { tracker.stopTracker(); } } @Update public void update() { } public void runTracker() { try { System.out.println("======> Starting JobTracker"); tracker = JobTracker.startTracker(new JobConf(getConfiguration())); tracker.offerService(); } catch (InterruptedException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } public static void main(String[] args) { try { HadoopJobTracker tracker = new HadoopJobTracker(); tracker.start(); //Thread.sleep(10000); //tracker.stop(); } catch (Exception e) { e.printStackTrace(); } } }