开发者社区> 问答> 正文

Hadoop中Job的源代码和过程分析以及实现了什么功能?

Hadoop中Job的源代码和过程分析以及实现了什么功能?

展开
收起
游客yzrzs5mf6j7yy 2021-12-06 06:28:17 337 0
1 条回答
写回答
取消 提交回答
  • 这个Job定义的就是我们的MapReduce任务了,在hadoop中每个任务都要定义一个Job,在Job中设定任务的输入输出、任务名字和运行逻辑等东西,DISTCP工具的Job在createAndSubmitJob()方法中的job = createJob()实现。实现源码如下:
    
    
    
    
    
     
    private Job createJob() throws IOException {
    
        String    jobName = "distcp";
    
        String    userChosenName = getConf().get(JobContext.JOB_NAME);
    
        if    (userChosenName != null)
    
          jobName    += ": " + userChosenName;
    
        Job    job = Job.getInstance(getConf());
    
           job.setJobName(jobName);
    
           job.setInputFormatClass(DistCpUtils.getStrategy(getConf(),    inputOptions)); 
    
           job.setJarByClass(CopyMapper.class);
    
           configureOutputFormat(job);                                                    
    
     
    
           job.setMapperClass(CopyMapper.class);
    
           job.setNumReduceTasks(0);
    
           job.setMapOutputKeyClass(Text.class);
    
           job.setMapOutputValueClass(Text.class);
    
           job.setOutputFormatClass(CopyOutputFormat.class);                             
    
           job.getConfiguration().set(JobContext.MAP_SPECULATIVE,    "false");              
    
           job.getConfiguration().set(JobContext.NUM_MAPS,   
    
                         String.valueOf(inputOptions.getMaxMaps()));                      
    
     
    
        if    (inputOptions.getSslConfigurationFile() != null) {
    
             setupSSLConfig(job);
    
        }
    
     
    
           inputOptions.appendToConf(job.getConfiguration());
    
        return    job;
    
    }
    
    2021-12-06 06:28:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《构建Hadoop生态批流一体的实时数仓》 立即下载
零基础实现hadoop 迁移 MaxCompute 之 数据 立即下载
CIO 指南:如何在SAP软件架构中使用Hadoop 立即下载