MapReduce使用Java代码实现

MR执行环境有两种:本地测试环境,服务器环境

第一种执行方式:服务器端运行

直接在服务器上,使用命令的方式调用,执行过程也在服务器上

   a、把MR程序打包(jar),传送到服务器上

   b、通过: hadoop jar jar路径  类的全限定名

Mapper

WordCountMapper .java

package com.mr;
import java.io.IOException;

import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
/**
* 用到默认的 inputformat : fileInputFormat 类,把数据片段中的数据一行一行读进来,每行下标为 key ,每行的内容为 value
* @author benxi
*
*/
public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
   
        // 以单词作为键
        public Text k = new Text();
        // 以 1 作为 value
        public IntWritable v = new IntWritable(1);
        @Override
        protected void map(LongWritable key , Text value ,Context context )
                        throws IOException, InterruptedException {
               String[] words = StringUtils. split ( value .toString(), " " );
                for ( int i = 0; i < words . length ; i ++){
                       String w = words [ i ];
                        // 以单词为 key
                        k .set( w );
                        context .write( k , v );
               }
       }
}

Reduce

WorldCountReduce .java

package com.mr;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class WorldCountReduce extends Reducer<Text, IntWritable
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值