Hadoop提交MR任务

MR作为Hadoop自带的计算框架所运行的任务,它本身通过hadoop jar提交

bash 复制代码
hadoop jar mr任务jar包路径 你要运行的类的全限定名 后面就是你需要传的参数

但是有些时候你需要显示的修改指定这个任务运行时所用的资源数,就可以通过下面的命令指令

bash 复制代码
hadoop jar your-hadoop-job.jar com.example.YourJobDriver \
    -D mapreduce.map.memory.mb=2048 \
    -D mapreduce.map.java.opts=-Xmx1638m \
    -D mapreduce.reduce.memory.mb=4096 \
    -D mapreduce.reduce.java.opts=-Xmx3276m \
    -D mapreduce.job.inputdir=/path/to/input/data \
    -D mapreduce.job.outputdir=/path/to/output/directory \
    arg1 arg2 arg3

your-hadoop-job.jar 是你的Hadoop作业的JAR文件。

com.example.YourJobDriver 是你的作业驱动程序的完全限定类名。

-D 选项用于设置Hadoop配置参数。

mapreduce.map.memory.mb=2048 设置每个Map任务的内存为2048MB。

mapreduce.map.java.opts=-Xmx1638m 这个是设置Map任务暂用JVM堆内存大小为1638MB(留一些内存给JVM进程本身)。

mapreduce.reduce.memory.mb=4096 设置每个Reduce任务的内存为4096MB。

mapreduce.reduce.java.opts=-Xmx3276m 设置Reduce任务的JVM堆内存大小为3276MB。

-D mapreduce.job.inputdir=/path/to/input/data 设置输入目录。

-D mapreduce.job.outputdir=/path/to/output/directory 设置输出目录。注意,这个目录在作业运行前应该不存在,因为Hadoop会尝试创建它。

arg1 arg2 arg3 是传递给main方法的参数。

注意,上面通过-d来指定参数的方式,只能指定作业的通用配置,而那些详细的,比如你要用多少个map?在你的MapReduce作业代码中,你可以通过调用job.setNumMapTasks(int num)来设置Map任务的个数。这个num参数就是你想要的Map任务的数量。reduce个数也是一样的通过job.setNumReduceTasks(5)修改。以及如果你想要大概的控制任务所用到的总资源,那还要配和集群的配置文件完成。所以,在控制资源上MR任务本身就比较麻烦,不像其他的框架提交yarn那样可以直接指定运行资源

相关推荐
程序员晨曦12 分钟前
Java 并发修仙传:ThreadLocal 从“闭关修炼”到“走火入魔”的救赎之路
java·开发语言
AIGS00114 分钟前
探索向量空间JBoltAI:工业企业数智化升级的基础设施
java·人工智能·人工智能ai大模型应用
zhangjw3437 分钟前
第18篇:Java网络编程零基础详解,IP、端口、TCP、UDP、Socket通信、实战文件传输
java·网络·tcp/ip
我命由我1234538 分钟前
Java 开发 - Jar 包与 War 包
java·开发语言·java-ee·intellij-idea·jar·idea·intellij idea
Upsy-Daisy43 分钟前
Hermes Agent 学习笔记 04:工具调用系统,让 Agent 从“会说”变成“会做”
java·笔记·学习
Volunteer Technology43 分钟前
SpringSecurity请求流转的本质
java·spring
心之伊始1 小时前
Spring AI MCP Client 实战:让 Java 后端通过 stdio 调用本地工具服务
java·spring boot·agent·spring ai·mcp
plainGeekDev1 小时前
文件读写(Java IO)→ Kotlin 扩展函数
android·java·kotlin
Full Stack Developme1 小时前
AspectJ 详解
java·后端
武子康1 小时前
Java-20 深入浅出 MyBatis - 手写ORM框架1 从原始 JDBC 暴露的 6 大问题开始
java·后端