运行Python Map时使用Google Cloud DataProc环境中的Hadoop流降低作业的错误



我想使用hadoop流方法运行python映射在Google Cloud Dataproc中减少作业。我的地图减少Python脚本,输入文件和作业结果输出位于Google Cloud Storage中。

我尝试运行此命令

hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -file gs://bucket-name/intro_to_mapreduce/mapper_prod_cat.py -mapper gs://bucket-name/intro_to_mapreduce/mapper_prod_cat.py -file gs://bucket-name/intro_to_mapreduce/reducer_prod_cat.py -reducer gs://bucket-name/intro_to_mapreduce/reducer_prod_cat.py -input gs://bucket-name/intro_to_mapreduce/purchases.txt -output gs://bucket-name/intro_to_mapreduce/output_prod_cat

但是我收到了此错误输出:

文件: /home/ramaadhitia/gs:/bucket-name/intro_to_to_mapreduce/mapper_prod_cat.py 不存在,或者不可读取。

尝试-HELP以获取更多信息流命令失败!

云连接器在Hadoop流中不起作用吗?是否有其他方法可以使用python脚本和位于Google Cloud Storage中的python脚本和输入文件来减少作业?

谢谢

hadoop-streaming中的-file选项仅适用于本地文件。但是请注意,其帮助文本提到-file标志对通用-files选项进行了弃用。使用通用-files选项,我们可以将远程(HDFS/GS)文件指定为阶段。还请注意,通用选项必须先于应用程序特定标志。

您的调用将成为:

hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar 
    -files gs://bucket-name/intro_to_mapreduce/mapper_prod_cat.py,gs://bucket-name/intro_to_mapreduce/reducer_prod_cat.py 
    -mapper mapper_prod_cat.py 
    -reducer reducer_prod_cat.py 
    -input gs://bucket-name/intro_to_mapreduce/purchases.txt 
    -output gs://bucket-name/intro_to_mapreduce/output_prod_cat

最新更新