如何将“hadoop jar”命令迁移到 GCP?

时间:2021-01-12 15:28:27

标签: java hadoop jar cloudera google-cloud-dataproc

标题几乎说明了一切:我们正在将一些作业从 Cloudera 迁移到 GCP,为此,我们正在用 gsutil 对应项替换所有 hadoop 命令。

但是,我在使用 hadoop jar 命令时遇到了一些困难,因为我没有找到有效的替代方法。

假设我在以前的工作中有这个:

hadoop jar /some/cloudera/path/thefile.jar \
    -files $path1/file1.sh,$path2/file2.py \
    -D mapred.job.queue.name=${ENVVAR} \
    -D mapred.reduce.tasks=0 \
    -D stream.map.output.field.separator=";" \
    -input ${inputPath}/* \
    -output ${outputPath} \
    -mapper file1.sh

在 GCP 上执行相同操作的最佳方式是什么?

(这是我的第一个问题,不要刻薄:) )

更新:

你永远不会停止学习是多么真实!最重要的是,你的老问题对你来说真的很愚蠢。 简单的解决方案是

gcloud dataproc jobs submit hadoop \
  --cluster=[CLUSTER_NAME] \
  --region=[REGION] \
  --jar=file:///usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
  --files $path1/file1.sh,$path2/file2.py \
  --properties mapreduce.job.reduces=0,stream.map.output.field.separator=";" \
  -- -input {theInputPathButOnGs}/* -output {theOutputPathButOnGs} -mapper file1.sh

一开始我可能想不通,因为我没有找到合适的例子,所以我不得不做一些尝试弄清楚key=value参数放在哪里,以及输入、输出和映射器.一切都显得那么不同。但它奏效了。感谢帮助过我的人

0 个答案:

没有答案