Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 控制台日志未通过org.apache.hadoop.mapreduce.Job';s waitForCompletion(true)方法_Java_Hadoop_Java 8_Mapreduce_Hadoop2 - Fatal编程技术网

Java 控制台日志未通过org.apache.hadoop.mapreduce.Job';s waitForCompletion(true)方法

Java 控制台日志未通过org.apache.hadoop.mapreduce.Job';s waitForCompletion(true)方法,java,hadoop,java-8,mapreduce,hadoop2,Java,Hadoop,Java 8,Mapreduce,Hadoop2,正如waitForCompletion(Boolean xxx)方法的文档所述 作业上的waitForCompletion()方法提交作业并等待其完成。该方法的单个参数是一个标志,指示是否生成详细输出。如果为true,则作业将有关其进度的信息写入控制台 在我下面的练习中,我将把这个论点设置为true。但仍然无法在控制台上打印详细的输出。 这是我的密码: public class MaxTemperature extends Configured implements Tool { publ

正如waitForCompletion(Boolean xxx)方法的文档所述

作业上的waitForCompletion()方法提交作业并等待其完成。该方法的单个参数是一个标志,指示是否生成详细输出。如果为true,则作业将有关其进度的信息写入控制台

在我下面的练习中,我将把这个论点设置为true。但仍然无法在控制台上打印详细的输出。 这是我的密码:

public class MaxTemperature extends Configured implements Tool {

  public static void main(String[] args) throws Exception {
      int exitCode = ToolRunner.run(new MaxTemperature(), args);
      System.exit(exitCode);
  }

  @Override
    public int run(String[] args) throws Exception {
        if (args.length != 2) {
              System.err.println("Usage: MaxTemperature <input path> <output path>");
              System.exit(-1);
            }
        System.out.println("Starting job");
        Job job = new Job();
        job.setJarByClass(MaxTemperature.class);
        job.setJobName("Max temperature");

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        job.setMapperClass(MaxTemperatureMapper.class);
        job.setReducerClass(MaxTemperatureReducer.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        int returnValue = job.waitForCompletion(true) ? 0:1;

        if(job.isSuccessful()) {
            System.out.println("Job was successful");
        } else if(!job.isSuccessful()) {
            System.out.println("Job was not successful");           
        }
        return returnValue;
    }
}
这是我在resources文件夹中的log4j.properties文件:

log4j.rootLogger=DEBUG, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender

log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

有什么建议吗?为什么没有打印关于工作进度和细节的信息?

@franklinsijo没有具体说明。只是为了检查需要返回的int值,以便停止作业。您可以使用hadoop
log4j.properties
@franklinsijo更新帖子吗?请立即检查。
log4j.rootLogger=DEBUG, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender

log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n