手动编写wordcount——MapReduce源码

hello world 1 

hello world 2

…… 10万行

map产生中间数据集,单词标1

比如有10万行hello为key,1为value;1行1为key,1为value

整个输出作为reduce的输入

 

源码

public class Job extends JobContextImpl implements JobContext

 

public interface JobContext extends MRJobConfig

 

在interface MRJobConfig内部,有很多很多配置信息,都是常量,比如:

public static final String INPUT_FORMAT_CLASS_ATTR = "mapreduce.job.inputformat.class";
 

这些字符串就是xml文件中的name-value对的那个引用,用这些取引用

 

这个默认配置便代表了map任务默认大小为1G,cpu为1个

  public static final String MAP_MEMORY_MB = "mapreduce.map.memory.mb";
  public static final int DEFAULT_MAP_MEMORY_MB = 1024;

  public static final String MAP_CPU_VCORES = "mapreduce.map.cpu.vcores";
  public static final int DEFAULT_MAP_CPU_VCORES = 1;

 

通过对源码的探究,发现MyMapper继承自Mapper中的map方法,而这个方法必须要重写

(另外还有发现,对Mapper中的MapContext接口,不仅仅是Job类,诸如此类,都来源于前面说的MRJobConfig)

 

ctrl o调出方法列表(idea为Ctrl h)

 

1.7设置,改两个,一个library一个preferance

然后打包,发到node01

然后hadoop jar MyWC.jar com.sxt.hadoop.mr.MyWC  

然后 hdfs dfs -get  /data/wc/output/* ./          

然后vi  part-r-00000

输出结果就在这里 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值