HDFS使用反射创建自定义Mapper对象

1、在HDFSWordCountApp01.java中,不建议采取以下方式新建mapper对象

ImoocMapper mapper = new WordCountMapper();

 

2、WordCount.properties

在WordCount.properties中,添加WordCountMapper类地址:

MAPPER_CLASS=com.imooc.bigdata.hadoop.hdfs.WordCountMapper

获取值方式:

在WordCountMapper.java中,选中WordCountMapper,并右击,选择copy reference即可获取值。

 

3、Constants.java

在Constants.java添加:

    public static final String MAPPER_CLASS = "MAPPER_CLASS";

 

4、在HDFSWordCountApp01.java中,通过反射创建对象

        //TODO... 自定义处理类
        //ImoocMapper mapper = new WordCountMapper();
        ImoocContext context = new ImoocContext();

        //TODO... 通过反射创建对象
        Class<?> clazz = Class.forName(properties.getProperty(Constants.MAPPER_CLASS));
        ImoocMapper mapper = (ImoocMapper)clazz.newInstance();//这样new出来是ImoocMapper.java接口

posted @ 2021-07-07 09:03  酱汁怪兽  阅读(95)  评论(0)    收藏  举报