4.8.1 本地模式

  1. MapReduce 程序是被提交给 LocalJobRunner 在本地以单进程的形式运行

  2. 处理的数据及输出结果可以在本地文件系统, 也可以在hdfs上

  3. 怎样实现本地运行? 写一个程序, 不要带集群的配置文件, 本质是程序的 conf中是否有 mapreduce.framework.name=local 以及 yarn.resourcemanager.hostname=local 参数

  4. 本地模式非常便于进行业务逻辑的 Debug, 只要在 idea中打断点即可

configuration.set("mapreduce.framework.name","local");
configuration.set(" yarn.resourcemanager.hostname","local");
TextInputFormat.addInputPath(job,new Path("/Users/huzhongliang/Desktop/wordcount/input"));
TextOutputFormat.setOutputPath(job,new Path("/Users/huzhongliang/Desktop/wordcount/output"));

如果在windows下想运行本地模式来测试程序逻辑,需要在windows中配置环境变量:

%HADOOP_HOME% = d:/hadoop-3.1.3

%PATH% = %HADOOP_HOME%\bin

并且要将d:/hadoop-3.1.3的lib和bin目录替换成windows平台编译的版本

window平台编译版本

4.8.2 集群模式

  1. 将 MapReduce 程序提交给 Yarn 集群, 分发到很多的节点上并发执行

  2. 处理的数据和输出结果应该位于 HDFS 文件系统

  3. 提交集群的实现步骤: 将程序打成JAR包,然后在集群的任意一个节点上用yarn命令启动

yarn jar t1_test-1.0-SNAPSHOT.jar com.briup.MR.WorldCount -D input=/user/hdfs/words.txt -D output=/user/hdfs/words_result

最后修改: 2023年12月28日 星期四 15:17