问题现象:
job提交后总是在本地机器运行,不能提交到Hadoop job tracker,在
:50030/jobtracker.jsp,不能看到运行中的job。
在控制台输出中出现:
14/02/15 00:04:20 INFO mapred.LocalJobRunner: reduce > sort
原因分析:
第一次尝试:
将原来使用的默认new Configuration()替换为从配置文件得到,使用以下类
public class ConfigurationUtil {
private static Configuration conf = null;
public static final String USER_DIR = System.getProperty("user.dir");
public static final String FILE_SEPARATOR = System
.getProperty("file.separator");
public static Configuration getConf() {
if (conf == null) {
conf = new Configuration();
String pathCore = USER_DIR + FILE_SEPARATOR + "config.xml";
System.out.println(pathCore);
conf.addResource(new Path(pathCore));
// String hostIp = "192.168.1.130";
// conf.set("hadoop.job.ugi", "hadoop");
// conf.set("hadoop.job.user", "hadoop");
// conf.set("mapred.job.tracker", hostIp + ":9001");
// conf.set("fs.default.name", "hdfs://namenode.meritit.com:9000");
// conf.set("mapred.map.tasks", "2");
}
return conf;
}
public static void main(String args[]) {
System.out.println(getConf().get("hadoop.job.user"));
}
}
完成后问题解决!
相关阅读:
Ubuntu 13.04上搭建Hadoop环境