MapReduce容错 com.dsj.hadoop.hdfs.WordCountApp
1)MRAppMaster:运行失败,由YARN的RM负责重新启动,默认启动次数2次
2)Map/Reduce Task
Task会周期性向MRAppMaster发送心跳,汇报运行状况
Task挂了,MRAppMaster会为task重新申请资源,然后重新执行(NM,换一个NM),次数限制,默认4次
使用MapReduce开发WordCount
1)在pom.xml中添加mapreduce的依赖
org.apache.hadoop
hadoop-mapreduce-client-app
${hadoop.version}
Map阶段:
1).将一个输入作为一个映射,即 key:value
说明:文件中的每行会执行一次map,针对words.txt文件中的内容会执行三次map,以文件中的第一行为例
行号:一行内容
Deer Bear River
2).处理value,拆分成独立的单词数组(按空格/tab分隔)
{Deer} {Bear} {River} {Deer}
3).当单词数组中的每个元素组成一个映射,即 key:value
Deer: 1 Bear: 1 River:1 Deer: 1
Reduce阶段:
1).将map阶段产生所有key:value通过洗牌排序产生新的key:value
Deer:{1, 1} Bear{1, 1} River{1, 1} Car{1, 1, 1}
2).遍历key,累加value值,最终结果如下
Deer:2
Bear:2
River:2
Car:3
2)开发代码
3) 使用maven进行打包
mvn clean package -DskipTests
4) 运行mr作业
hadoop jar /home/hadoop/lib/hadoop-test-1.0-SNAPSHOT.jar com.dsj.hadoop.hdfs.WordCountApp /input /output