# MapReduce 程序
# 说明
MapReduce 是 Hadoop 原生批处理框架,核心依赖 YARN 运行,配置项更聚焦「Hadoop 环境、作业资源、输入输出」,无流式框架的特殊配置(如检查点)。
对于 MapReduce 任务,worker 会通过使用 Hadoop 命令 hadoop jar 的方式提交任务,支持 JAVA/SCALA/Python 三种程序类型,可直接调度 Hadoop MapReduce 任务。。
程序类型为 JAVA/SCALA 或者 Python 时,配置项的要求有所区别。
# 前置环境准备
- Hadoop 环境配置
DolphinScheduler Worker 节点需安装 Hadoop 客户端,并配置 HADOOP_HOME、YARN_CONF_DIR 等环境变量(bin/env/dolphinscheduler_env.sh)。 确保 Worker 可正常执行 hadoop jar、yarn application 等命令。
- 资源中心配置(推荐)
通过 项目配置》文件管理 上传 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)
- 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
- 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
常见问题与排查
- 任务提交失败
检查 Worker 节点 HADOOP_HOME、YARN_CONF_DIR 配置是否正确。
确认 JAR 包路径 / 资源中心文件存在,主类名拼写正确。
查看 DolphinScheduler 任务日志与 YARN 日志,定位异常。
- 权限问题
确保 DolphinScheduler 租户用户对 HDFS 输入 / 输出目录有读写权限。
输出目录需不存在,否则 MapReduce 会报错。
- 资源不足
调整 mapreduce.map.memory.mb、mapreduce.reduce.memory.mb 等参数。
检查 YARN 队列资源配额是否充足。