hadoop编写Mapper类

简介: 【7月更文挑战第10天】

image.png
在Hadoop MapReduce中,Mapper类主要用于处理输入数据并将其转换为中间键值对。下面是一个基本的Mapper类示例,使用Java编写,该示例将文本文件中的每一行作为输入,并将每个单词映射为其出现次数(1)。

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
   
   

  private final static IntWritable one = new IntWritable(1);
  private Text word = new Text();

  public void map(LongWritable key, Text value, Context context) 
          throws IOException, InterruptedException {
   
   
        String line = value.toString();
        StringTokenizer tokenizer = new StringTokenizer(line);
        while (tokenizer.hasMoreTokens()) {
   
   
            word.set(tokenizer.nextToken());
            context.write(word, one);
        }
    }
}

在这个例子中:

  • WordCountMapper 类扩展了 Mapper 类。
  • map() 方法是主要的映射逻辑,它接收一个键(行号,类型为 LongWritable),一个值(行内容,类型为 Text),以及一个 Context 对象来写入中间结果。
  • 使用 StringTokenizer 将每行分割成单词。
  • 每个单词被设置为 word 对象,然后与 one 对象一起写入上下文,表示该单词出现一次。

注意,你需要根据你的具体需求来调整这个示例,例如更改输入和输出类型,或者修改映射逻辑。

目录
相关文章
|
3月前
|
存储 分布式计算 Hadoop
hadoop编写Reducer类
【7月更文挑战第10天】
23 3
|
3月前
|
分布式计算 Hadoop Java
Hadoop编写Combiner类
【7月更文挑战第7天】
16 3
|
10月前
|
分布式计算 Hadoop 大数据
|
存储 分布式计算 自然语言处理
Hadoop序列化、概述、自定义bean对象实现序列化接口(Writable)、序列化案例实操、编写流量统计的Bean对象、编写Mapper类、编写Reducer类、编写Driver驱动类
Hadoop序列化、概述、自定义bean对象实现序列化接口(Writable)、序列化案例实操、编写流量统计的Bean对象、编写Mapper类、编写Reducer类、编写Driver驱动类
Hadoop序列化、概述、自定义bean对象实现序列化接口(Writable)、序列化案例实操、编写流量统计的Bean对象、编写Mapper类、编写Reducer类、编写Driver驱动类
|
分布式计算 Java Hadoop
|
分布式计算 Java Hadoop
|
3天前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
25 11
|
2月前
|
存储 分布式计算 Hadoop

相关实验场景

更多
下一篇
无影云桌面