本帖最后由 arsenduan 于 2015-11-28 20:14 编辑
首先,如果需要打印日志,不需要用log4j这些东西,直接用System.out.println即可,这些输出到stdout的日志信息可以在jobtracker站点最终找到。
其次,如果在main函数启动的时候用System.out.println打印的日志,直接在控制台就可以看到。
再其次,jobtracker站点很重要。
[mw_shl_code=bash,true]http://your_name_node:50030/jobtracker.jsp [/mw_shl_code]
注意,在这里看到Map 100%不一定正确,有时候会卡在Map阶段并没有完成,而此时居然显示Map 100%,所以要一层层的点进去,直到看到日志为止。
另外,在cluster summary表格中可以看到map/reduce slots的情况,方便了解集群计算资源。可以写个脚本定时收集slots信息,方便分析出集群高峰和空闲时间段。
进一步补充:
context.write(key, new LongWritable(sumSalary));
context.write也可以输出相关信息
[mw_shl_code=bash,true] public static class Reduce extends Reducer<Text, Text, Text, LongWritable> {
public void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException {
// 对同一部门的员工工资进行求和
long sumSalary = 0;
for (Text val : values) {
sumSalary += Long.parseLong(val.toString());
}
// 输出key为部门名称和value为该部门员工工资总和
context.write(key, new LongWritable(sumSalary));
}
}[/mw_shl_code]
|
|