Hadoop实践(四)---MR作业配置

1、向作业传递定制的参数

Hadoop自身使用一个配置对象类存储所有作业的配置属性,也可以使用这个对象将参数传递到Mapper和Reducer

  1. MR的driver类通过属性来配置JobConf对象,这些属性包括输入格式,输出格式,Mapper类等。如果要引入自定义的属性,需要在这个配置对象中给属性一个唯一的名称并设置它的值。
  2. 这个配置对象会被传递到所有的TaskTracker(AM),然后作业中的所有任务就能够看到配置对象中的属性
  3. Mapper和Reducer就可以通过读取该配置对象并获得它的属性值

Configuration类(JonConf的父类)有许多通用的setter方法,属性采用键值对的形式,键必须是string,而值可以是常用类型的任意一个。

常用的setter方法:

  public void set(String name,String value)
  public void setBoolean(String name, boolean value)
  public void setInt(String name, int value)
  public void setLong(String name, long value)
  public void setStrings(String name, String... values)

常用的getter方法:

 public String get(String name)
 public String get(String name, String defaultValue)
 public boolean getBoolean(String name, boolean defaultValue)
 public float getFloat(String name, float defaultValue)
 public int getInt(String name, int defaultValue)
 public long getLong(String name, long defaultValue)
 public String getBoolean(String name, String... defaultValue)

Tips:在Hadoop内部,所有的属性都存为字符串

  1. driver类首选设置配置对象的属性,让它们在所有的任务中可见
  2. Mapper和Reducer可以访问Configure()方法中的配置对象
  3. 任务初始化时会调用configure(),它已经被重写为可以提取和存储设置的属性
  4. map和reduce方法访问这些属性的副本
package MR;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.*;

import java.io.IOException;
import java.util.Iterator;

/**
 * Created by Promacanthus on 2017/6/29.
 */
public class tample {
   
    public int run(String[] args)throws Exception{
        Configuration conf = new Configuration();
        JobConf job = new JobConf(conf);
        job.setInt("myjob.property",Integer.parseInt(args[2]));
        JobClient.runJob(job);
        return 0;
    }
    public static class MapClass extends MapReduceBase implements Mapper<Text,Text,Text,Text>{
   
        int myproperty;
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值