Yarn的Tool接口案例
Tool接口环境准备

之前写wordcount里通过命令行传入的参数来获取输入路径与输出路径。执行命令
[ranan@hadoop102 hadoop-3.1.3]$ hadoop jar wc.jar
com.ranan.mapreduce.wordcount2.WordCountDriver /input
/output1
期望可以动态传参,结果报错,被人误是第一个输出参数
[rana@hadoop102 hadoop-3.1.3]$ hadoop jar wc.jar
com.rana.mapreduce.wordcount2.WordCountDriver -
D mapreduce.job.queuename=root.test /input /output2
需求:自己写的程序也可以动态修改参数。编写Yarn的Tool接口
1 新建Maven项目YarnDemo
修改Maven设置

修改pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion
<groupId>com.ranan</groupId>
<artifactId>YarnDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<!--打包使用的是JDK8-->
<maven.conpiler.source>8</maven.conpiler.source>
<maven.conpiler.target>8</maven.conpiler.target>
</properties>
<!-- 新增依赖 -->
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.3</version>
</dependency>
</dependencies>
</project>
注意
打包用的JDK8,hadoop里面是JDK8,但是本地安装的是JDK11、Maven使用的是JDK11。
所以执行命令的时候会报错。
hadoop3.x目前只支持jdk1.8。修改版本到JDK8。
修改Java编译器


本文档介绍了如何使用Yarn的Tool接口来动态传递参数,从而在执行MapReduce任务时能够灵活地设置输入输出路径。通过创建一个Maven项目,编写WordCount程序,并实现Tool接口,我们可以从命令行动态传入参数。详细步骤包括环境准备、编写代码、打包上传以及在集群上运行。最后,展示了如何通过添加额外参数来设置队列名称等配置。
最低0.47元/天 解锁文章
722

被折叠的 条评论
为什么被折叠?



