hadoop_WordCountMap
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代码