import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
/*LongWritable 偏移量 Long,表示该行在文件中的位置,而不是行号
* Text map阶段的输入数据 一行文本信息 字符串类型 String
* Text map阶段的数据字符串类型String
* IntWritable map阶段输出的value类型,对应java中的int型,表示行号*/
public class WordCountMap extends Mapper<LongWritable,Text,Text,IntWritable>{               //空格占两个字符
    @Override
    protected void map(LongWritable key,Text value,Context context)throws IOException,InterruptedException{
        //读取每行文本
        String line=value.toString();
        //splite拆分每行
        String[] words=line.split(" ");//分词
        //取出每个单词
        for(String word:words){
            //将单词转为Text类型
            Text wordText=new Text(word);
            //将1转变为IntWritable
            IntWritable outValue=new IntWritable(1);
            //写出单词,跟对应1
            context.write(wordText,outValue);
        }
    }
}

hadoop启动进程
hdfs:分布式文件系统 分布式:多台机器处理任务
namenode:老大 管理
secondarynamenode:老二 备用的namenode
datanode:存储数据
yarn:资源调度
resourcemanager:老大 管理
nodemanager:小弟 处理任务

要写的代码:
java操作hdfs:
1.获取分布式文件系统fs=FileSystem.get()
2.fs.mkdir()操作文件系统
MapReduce:自己要写的业务代码,处理数据,运行在yarn上 在java上写
要写Map代码和Reduce代码

版权声明:本文为森林深处有一道光原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/8888w/p/16211707.html