You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Dataproc提交Python Hadoop作业时Jar文件找不到错误?

解决Dataproc 2.2.x版本Hadoop Streaming作业找不到hadoop-streaming.jar的问题

问题原因

Dataproc 2.x系列镜像(基于Hadoop 3.x)调整了hadoop-streaming.jar的官方存放路径,标准路径为/usr/lib/hadoop-mapreduce/hadoop-streaming.jar。尽管主节点的/usr/lib/hadoop/下存在软链接,但作业提交时必须使用官方标准路径才能被Dataproc作业调度服务正确识别。同时你的命令中还存在脚本文件名不匹配的问题:上传的是mapper.py/reducer.py,但mapper/reducer参数里写的是mapper_task_1.py/reducer_task_1.py,这会导致后续执行阶段找不到脚本。

修正后的完整命令

gcloud dataproc jobs submit hadoop \
  --cluster=my-cluster-1 \
  --region=us-central1 \
  --jar=/usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
  --files=gs://<bucket_name>/mapper.py,gs://<bucket_name>/reducer.py \
  -- --mapper "python3 mapper.py" \
     --reducer "python3 reducer.py" \
     --input gs://<bucket_name>/sample/ \
     --output gs://<bucket_name>/output/

关键修正点

  • 修正jar路径:将--jar参数的值替换为/usr/lib/hadoop-mapreduce/hadoop-streaming.jar,这是Dataproc 2.x版本的官方标准路径。
  • 统一脚本文件名:确保--mapper/--reducer中指定的脚本名称,与--files参数里上传的文件名完全一致,避免执行时出现文件找不到的错误。

内容的提问来源于stack exchange,提问作者The Beast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:06:05