Skip to content

MapReduce 程序

说明

MapReduce 是 Hadoop 原生批处理框架,核心依赖 YARN 运行,配置项更聚焦「Hadoop 环境、作业资源、输入输出」,无流式框架的特殊配置(如检查点)。

对于 MapReduce 任务,worker 会通过使用 Hadoop 命令 hadoop jar 的方式提交任务,支持 JAVA/SCALA/Python 三种程序类型,可直接调度 Hadoop MapReduce 任务。。

程序类型为 JAVA/SCALA 或者 Python 时,配置项的要求有所区别。

前置环境准备

  1. Hadoop 环境配置

DolphinScheduler Worker 节点需安装 Hadoop 客户端,并配置 HADOOP_HOME、YARN_CONF_DIR 等环境变量(bin/env/dolphinscheduler_env.sh)。 确保 Worker 可正常执行 hadoop jar、yarn application 等命令。

  1. 资源中心配置(推荐)

通过 项目配置》文件管理 上传 MapReduce 程序 JAR/Python 脚本到 DolphinScheduler 资源中心。 任务配置时直接选择资源中心文件。

配置项说明

JAVA/SCALA 程序

配置项默认值描述示例
任务名称-选择 JAVA/SCALA 语言。mr_wordcount
程序类型-选择 JAVA/SCALA 语言。JAVA
主函数的 Class-MapReduce 程序的入口 Main class 的全路径。org.apache.hadoop.examples.WordCount
主程序包-执行 MapReduce 程序的 jar 包。hadoop-mapreduce-examples.jar
主程序参数-是 MapReduce 局部的用户自定义参数,会替换脚本中以 ${变量} 的内容。hdfs:///user/ds/input hdfs:///user/ds/output
选项参数-支持 –D、-files、-libjars、-archives 格式。-D mapreduce.job.queuename=default

Python 程序

配置项默认值描述示例
程序类型-选择 Python 语言。PYTHON
主函数的 Class-不用填写。
主程序包-运行 MapReduce 的 Python jar 包。hadoop-streaming.jar
主程序参数-是 MapReduce 局部的用户自定义参数,会替换脚本中以 ${变量} 的内容。-input hdfs:///input -output hdfs:///output
选项参数-支持 –D、-mapper、-reducer、-input -output格式,这里可以设置用户自定义参数的输入。
比如:-mapper “mapper.py 1” -file mapper.py -reducer reducer.py -file reducer.py –input /journey/words.txt -output /journey/out/mr/${currentTimeMillis},其中 -mapper 后的 mapper.py 1是两个参数,第一个参数是 mapper.py,第二个参数是 1。
-mapper mapper.py -reducer reducer.py -files mapper.py,reducer.py

配置示例(WordCount)

  1. Java WordCount 配置

程序类型:JAVA

主类:org.apache.hadoop.examples.WordCount

主 JAR 包:hadoop-mapreduce-examples.jar(资源中心)

主程序参数:hdfs:///user/ds/input hdfs:///user/ds/output

选项参数:-D mapreduce.job.queuename=default

  1. Python Streaming 配置

程序类型:PYTHON

主 JAR 包:hadoop-streaming.jar

主程序参数:-input hdfs:///input -output hdfs:///output

选项参数:-mapper mapper.py -reducer reducer.py -files mapper.py,reducer.py

FAQ

常见问题与排查

  1. 任务提交失败

检查 Worker 节点 HADOOP_HOME、YARN_CONF_DIR 配置是否正确。

确认 JAR 包路径 / 资源中心文件存在,主类名拼写正确。

查看 DolphinScheduler 任务日志与 YARN 日志,定位异常。

  1. 权限问题

确保 DolphinScheduler 租户用户对 HDFS 输入 / 输出目录有读写权限。

输出目录需不存在,否则 MapReduce 会报错。

  1. 资源不足

调整 mapreduce.map.memory.mb、mapreduce.reduce.memory.mb 等参数。

检查 YARN 队列资源配额是否充足。