yarn 运行 MapReduce
将 mapreduce 程序 提交给
yarn,分发到多个节点上并发执行读取的数据 和 输出结果 在 HDFS 上
准备服务
要先启动 HDFS、yarn
启动 HDFS ,MapReduce 要读写 HDFS上的文件
启动 yarn,因为 MapReduce 程序运行在yarn上
整体启动
登录 hadoop1 ,执行下面命令:
/program/bin/hadoop.sh start
分别启动
启动 HDFS
登录 hadoop1 ,执行下面命令:
start-dfs.sh
启动 yarn
登录 hadoop2 ,执行下面命令:
start-yarn.sh
准备数据
数据下载见 链接
上传文件
访问 http://hadoop1:9870/explorer.html ,创建 /mapreduce/filter 文件夹,如下:
将上面文件,上传到该文件夹
最终结果:
清空结果文件夹
删除 result 目录,如下图:
打成jar包
idea 打成 jar 包
通过maven打包,如下图:
打包结果如下:
将jar包上传到服务器
将上面的 wordcount-1.0-SNAPSHOT.jar 包,上传到 hadoop1 服务器的 program 目录
执行 MapReduce 命令
命令格式
hadoop jar jar包名 主启动类 读入数据路径 输出结果路径
例子
hadoop jar wordcount-1.0-SNAPSHOT.jar top.malaoshi.filter2.Main /mapreduce/filter /mapreduce/result_filter
注意: hdfs上不能有 /mapreduce/result_filter 文件夹,否则执行报错
执行结果如下图:
解释:
- 先连接
ResourceManager,申请资源 WARN mapreduce.JobResourceUploader警告,应该用ToolRunner提交链接
Hadoop web查看结果
解释:
_SUCCESS:是成功的标识文件part-r-00000:是结果文件
part-r-00000 内容如下图
Yarn Web管理界面查看结果
访问:http://hadoop2:8088/ ,显示界面如下:
查看历史
点击下图【history】:
查看map、reduce:
由于是2个文件,所以有 2个 map task执行,由 1个 reduce task统计












