hadoop3.x mapreduce案例:统计每个用户包含指定关键字的记录(2)(yarn运行)

yarn 运行 MapReduce

  1. 将 mapreduce 程序 提交给 yarn,分发到多个节点上并发执行

  2. 读取的数据 和 输出结果 在 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查看结果

访问 http://hadoop1:9870/

解释:

  • _SUCCESS:是成功的标识文件
  • part-r-00000:是结果文件

part-r-00000 内容如下图

Yarn Web管理界面查看结果

访问:http://hadoop2:8088/ ,显示界面如下:

查看历史

点击下图【ID】:

点击下图【history】:

查看map、reduce:

由于是2个文件,所以有 2个 map task执行,由 1个 reduce task统计


原文出处:/show_1GW2LpvkfItd.html