2017-01-17 13 views
0

Я работаю с Map Сократить задание и выполнить его с помощью метода запуска ToolRunner. Вот мой код:Почему карта уменьшает работу poinitng на localhost: 8080?

public class MaxTemperature extends Configured implements Tool { 

    public static void main(String[] args) throws Exception { 
     System.setProperty("hadoop.home.dir", "/"); 
     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; 
    } 
} 

Работа выполнена хорошо, как ожидалось. Но когда я просмотрел журналы, которые отображает информацию в отслеживании заданий, я обнаружил, что сокращение карты указывает на localhost: 8080 для отслеживания задания.

Вот снимок журналов:

20521 [main] INFO org.apache.hadoop.mapreduce.JobSubmitter - number of splits:1 
20670 [main] INFO org.apache.hadoop.mapreduce.JobSubmitter - Submitting tokens for job: job_local1454583076_0001 
20713 [main] WARN org.apache.hadoop.conf.Configuration - file:/tmp/hadoop-KV/mapred/staging/KV1454583076/.staging/job_local1454583076_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 
20716 [main] WARN org.apache.hadoop.conf.Configuration - file:/tmp/hadoop-KV/mapred/staging/KV1454583076/.staging/job_local1454583076_0001/job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 
20818 [main] WARN org.apache.hadoop.conf.Configuration - file:/tmp/hadoop-KV/mapred/local/localRunner/KV/job_local1454583076_0001/job_local1454583076_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 
20820 [main] WARN org.apache.hadoop.conf.Configuration - file:/tmp/hadoop-KV/mapred/local/localRunner/KV/job_local1454583076_0001/job_local1454583076_0001.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 
**20826 [main] INFO org.apache.hadoop.mapreduce.Job - The url to track the job: http://localhost:8080/** 
20827 [main] INFO org.apache.hadoop.mapreduce.Job - Running job: job_local1454583076_0001 
20829 [Thread-10] INFO org.apache.hadoop.mapred.LocalJobRunner - OutputCommitter set in config null 

Так что мой вопрос почему карта снижают указывает на локальный: 8080

URL, чтобы отслеживать работу: http://localhost:8080/

Нет файла конфигурации или файла свойств, где я вручную устанавливаю это. Кроме того, возможно ли, что я могу изменить его на другой порт? Если да, как я могу это достичь?

+0

Вы используете это в локальном режиме или на кластере? – Venkat

+1

Должен быть «localhost: 8088», порт по умолчанию для веб-интерфейса ApplicationMaster. – franklinsijo

+0

Его в локальном режиме и только его 8080 – KayV

ответ

0

Нам необходимо изменить конфигурацию по умолчанию и создать объект конфигурации и установить свойство к этому объекту конфигурации, а затем создать объект задания с использованием этой конфигурации следующим образом:

Configuration configuration = getConf(); 

    //configuration.set("fs.defaultFS", "hdfs://192.**.***.2**"); 
    //configuration.set("mapred.job.tracker", "jobtracker:jtPort"); 
    configuration.set("mapreduce.jobtracker.address", "localhost:54311"); 
    configuration.set("mapreduce.framework.name", "yarn"); 
    configuration.set("yarn.resourcemanager.address", "127.0.0.1:8032"); 

    //configuration.set("yarn.resourcemanager.webapp.address", "127.0.0.1:8032"); 

    //Initialize the Hadoop job and set the jar as well as the name of the Job 
    Job job = new Job(configuration); 
1

Таким образом, порты настроены в пряже-site.xml: yarn-site.xml

Проверил: yarn.resourcemanager.webapp.address

 Смежные вопросы

  • Нет связанных вопросов^_^