yarn jar /path/to/your-job.jar com.example.WordCount \
-D mapreduce.job.queuename=default \
-D mapreduce.map.memory.mb=2048 \
-D mapreduce.map.cpu.vcores=1 \
-D yarn.app.mapreduce.am.resource.mb=2048 \
-D yarn.app.mapreduce.am.resource.cpu-vcores=1 \
-D mapreduce.reduce.memory.mb=4096 \
-D mapreduce.reduce.cpu.vcores=4096 \
-D mapreduce.job.reduces=2 \
-D mapreduce.map.java.opts='-Xmx1800m' \
-D mapreduce.reduce.java.opts='-Xmx3600m' \
-D mapreduce.job.priority=3 \
-D mapreduce.output.fileoutputformat.compress=true \
-D mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.GzipCodec \
-libjars /path/to/dependency1.jar,/path/to/dependency2.jar \
-files /path/to/local/file1.txt,/path/to/local/file2.txt \
-archives /path/to/archive1.zip \
-conf /path/to/custom-mapred-site.xml \
hdfs:///user/youruser/input hdfs:///user/youruser/output
这条命令是用于在Hadoop YARN集群上启动一个MapReduce作业的,其中包含了多个配置项和参数,用于定制作业的执行环境和行为。下面是对各个部分的详细解释:
yarn jar /path/to/your-job.jar com.example.WordCount
:yarn jar
: 指定使用YARN来运行一个JAR包中的程序。/path/to/your-job.jar
: 指定包含MapReduce作业的JAR文件的路径。com.example.WordCount
: 指定JAR包中的主类(包含main
方法)的完全限定名,这里是WordCount
类的路径。
- 配置项 (
-D
开头的部分):- 这些配置项用于设置作业的各种资源限制、优先级、输出格式等。
mapreduce.job.queuename=default
: 指定作业提交到的队列名,这里是default
。- 内存和CPU核数配置(
mapreduce.map.memory.mb
,mapreduce.map.cpu.vcores
,yarn.app.mapreduce.am.resource.mb
,yarn.app.mapreduce.am.resource.cpu-vcores
,mapreduce.reduce.memory.mb
,mapreduce.reduce.cpu.vcores
):为Map任务、Reduce任务和应用程序管理器(Application Master, AM)设置内存和CPU核数的限制。 mapreduce.job.reduces=2
: 指定Reduce任务的数量。- Java虚拟机选项(
mapreduce.map.java.opts
,mapreduce.reduce.java.opts
):为Map和Reduce任务设置JVM的堆内存大小。 mapreduce.job.priority=3
: 设置作业的优先级。- 输出压缩配置(
mapreduce.output.fileoutputformat.compress
,mapreduce.output.fileoutputformat.compress.codec
):启用输出文件的压缩,并指定压缩编解码器。
-libjars
,-files
,-archives
:-libjars
: 指定需要被作业类路径包含的JAR文件,这些JAR文件将被分发给所有任务节点。-files
: 指定需要被分发到任务工作目录的本地文件。-archives
: 指定需要被解压到任务工作目录的归档文件(如ZIP文件)。
-conf
:-conf /path/to/custom-mapred-site.xml
: 指定一个自定义的MapReduce配置文件,这个文件中的配置将覆盖默认配置。
- 输入和输出路径:
hdfs:///user/youruser/input hdfs:///user/youruser/output
: 分别指定作业的输入路径和输出路径。这些路径应该是HDFS上的路径。
总结来说,这条命令通过YARN提交了一个MapReduce作业,通过多个配置项和参数详细定制了作业的执行环境、资源限制、优先级、输出格式等,并指定了输入和输出路径,以及需要被分发的额外文件和归档文件。