示例:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \ -input myInputDirs \ -output myOutputDir \ -mapper org.apache.hadoop.mapred.lib.IdentityMapper \ -reducer /bin/wc
这是最一般的用法,输入输出文件和mapper,reducer是最基本的要素。
mapper和reducer可以是任何程序Java,C++,Shell,C,Python.
一些常用的附加选项:
-file 打包map,reduce所需要的配置文件,输入文件,字典等,或者执行文件如map,reduce
-numReduceTask限制reduce的个数,0表示不需要reduce=[-reduce NONE]
-inputformat JavaClassName 输入格式
-outputformat JavaClassName 输出格式 -partitioner JavaClassName 分片函数 -combiner streamingCommand or JavaClassName 合并函数
可以看出,跟普通的MapR程序的结构一样。
bin/hadoop command [genericOptions] [streamingOptions]
下面讲一下通用参数:
注意,通用参数一定在放在前面,如上例。
Parameter
|
Optional/Required
|
Description
|
---|---|---|
-conf configuration_file | Optional | Specify an application configuration file——指定一个配置文件 |
-D property=value | Optional | Use value for given property——指定单个配置项 |
-fs host:port or local | Optional | Specify a namenode——指定格外的nn |
-jt host:port or local | Optional | Specify a job tracker——指定格外的yarn |
-files | Optional | 需要上传的文件,作用跟上面的-file一样 |
-libjars | Optional | 需要上传的jar包 |
-archives | Optional | 上传需要的文件并且解压到Task的工作目录中 |