单机还是分布式?
需要的运行资源是Hadoop yarn分配还是本机系统自己分配?

设置

运行何种模式,取决于参数:mapreduce.framework.name

  • yarn:YARN集群模式、
  • local:本地模式
    • 如果不指定,默认是local模式
    • mapred-default.xml中定义
    • 如果代码中conf.set、运行的环境中有配置mapred-site.xml,会默认覆盖default配置。

在默认设置中:
image.png
image.png
在代码中定义:
image.png

YARN集群模式

  • MapReduce程序提交给yarn集群,分发到多个节点上分布式并发执行。数据通常位于HDFS。
  • 需要配置参数∶

    1. mapreduce.framework.name=yarn
    2. yarn.resourcemanager.hostname=node1.itcast.cn
  • 提交集群的实现步骤︰

    • 确保Hadoop集群启动(HDFS集群、YARN集群);
    • 将程序打成jar包,上传jar到Hadoop集群的任意一个节点;
    • 执行命令启动。

上述的两个参数,在集群的运行环境已经配置完成
image.png
image.png

打jar包:
image.png

运行:
image.png
image.png

local模式

用于调试

  • MapReduce程序是被提交给lpcalJobRunner在本地以单进程的形式运行。是单机程序。
  • 输入和输出的数据可以在本地文件系统,也可以在HDFS上。
  • 本地模式非常便于进行业务逻辑的debug。
  • 右键直接运行main方法所在的主类即可。

image.png
image.png

如何区别模式

代码的注解模式是最高的

(1)方法1:登录YARN集群查看,是否有程序执行过的记录(这是最准确靠谱的)
(2)方式2∶通过查看执行日志
image.png