【MapReduce】MapReudce在集群上运行时查询System.out的结果

编程入门 行业动态 更新时间:2024-10-07 06:48:50

【MapReduce】MapReudce在<a href=https://www.elefans.com/category/jswz/34/1771240.html style=集群上运行时查询System.out的结果"/>

【MapReduce】MapReudce在集群上运行时查询System.out的结果

MapReudce在集群上运行时查询System.out的结果

  • 准备工作
  • 查看日志文件

准备工作

  • 我们在使用MapReduce在集群上运行时,常常为了方便而使用System.out,但是却无法显示在控制台上,往往我们就需要去日志里面寻找
  • 本次所使用到的数据
  • 本次使用的代码
package WC;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class WordCountTest {public static class WCMapper extends Mapper<LongWritable, Text, Text, IntWritable> {IntWritable v = new IntWritable();@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {String[] words = value.toString().split(" ");for (String word : words) {context.write(new Text(word), v);}}}public static class WCReduce extends Reducer<Text, IntWritable, Text, IntWritable> {@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable count : values) {sum += 1;}context.write(key, new IntWritable(sum));System.out.println("单词" + key.toString() + "出现的次数为" + sum);}}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = new Job(conf);job.setJarByClass(WordCountTest.class);job.setMapperClass(WCMapper.class);job.setReducerClass(WCReduce.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path("hdfs://192.168.0.160:9000/mapreduce/wc/input"));FileOutputFormat.setOutputPath(job, new Path("hdfs://192.168.0.160:9000/mapreduce/wc/output"));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}
  • 如果虚拟机使用的是映射,我们常常也需要在window中配置一下,window上的host文件的地址为C:\Windows\System32\drivers\etc

  • 开启historyServer服务

    启动命令:mr-jobhistory-daemon.sh start historyserver关闭命令:mr-jobhistory-daemon.sh stop historyserver
    

查看日志文件

  • 登录yarn的UI界面:localhost:8088

  • 找到需要查找项目的编号

  • 找到对应的项目,点击绿色圈住的地方

  • 日志都是在reduce阶段产生的

  • 继续点击

  • 点击logs查看日志

  • 如果出现的时下图,请在yarn-site.xml文件里增加

    <property><name>yarn.log-aggregation-enable</name><value>true</value><description>开启日志聚集功能,任务执行完之后,将日志文件自动上传到文件系统(如HDFS文件系统),否则通过namenode1:8088页面查看日志文件的时候,会报错"Aggregation is not enabled. Try the nodemanager at namenode1:54951"</description></property><property><name>yarn.log-aggregation.retain-seconds</name><value>302400</value><description>日志文件保存在文件系统(如HDFS文件系统)的最长时间,默认值是-1,即永久有效。这里配置的值是:7天 = 3600 * 24 * 7 = 302400</description></property>
  • 最后应该看到

更多推荐

【MapReduce】MapReudce在集群上运行时查询System.out的结果

本文发布于:2024-02-06 15:07:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749701.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:集群   MapReduce   MapReudce   System

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!