标题几乎说明了这一切:我们正在将一些作业从cloudera迁移到gcp,为此,我们正在用gsutil命令替换所有hadoop命令。
但是,hadoopjar命令有一些困难,因为我没有找到有效的替代品。
假设我以前的工作是这样的:
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参数以及input、output和mapper的放置位置。一切似乎都不同了。但它成功了。感谢那些帮助我的人
暂无答案!
目前还没有任何答案,快来回答吧!