Hadoop流媒体 - 意外的争论

时间:2018-02-06 10:24:19

标签: python hadoop mapreduce hadoop-streaming

我正在尝试在cloudera hadoop上执行下面的命令,但它遇到了问题,我收到了错误消息。
不确定它是否是一个错误或我做错了什么 任何信息都将非常感激。

 hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -files /home/cloudera/mapper.py /home/cloudera/reducer.py -mapper "python mapper.py" -reducer "python reducer.py" -input /user/cloudera/test_file -output /user/cloudera/wc_output01

错误消息:

  

在命令行[/home/cloudera/reducer.py]上找到1个意外的参数      尝试-help获取更多信息      流命令失败!

2 个答案:

答案 0 :(得分:2)

您可以通过reading the documentation

了解错误
  

-files和-archives选项是通用选项。确保在命令选项之前放置通用选项,否则命令将失败。

您正确地放置了参数,因此不是问题

  

可以像这样指定多个条目:

     

-files hdfs://host:fs_port/user/testfile1.txt,hdfs://host:fs_port/user/testfile2.txt

mapper和reducer文件之间没有逗号

如果文件是可执行文件并且以mapper.py

开头,则可以传递#!/usr/bin/env python

答案 1 :(得分:0)

想出了这个问题。我使用了-files创造了问题。之前我曾使用过-file但是控制台发出了警告'弃用,使用-files作为通用选项'。但是这并没有解决问题,所以我恢复了-file选项,它运行同样的警告。