$HADOOP_HOME/bin/hadoop jar streaming \
-input /user/test/input \
-output /user/test/output \
-mapper "python mapper.py” \
-reducer "python reducer.py” \
-file mapper.sh \
-jobconf mapred.job.name=”xxx”
input:指定作业的输入文件的HDFS路径,支持使用*通配符,支持指定多个文件或目录,可多次使用
output:指定作业的输出文件的HDFS路径,路径必须不存在,并且具备执行作业用户有创建该目录的权限,只能使用一次
mapper:用户自己写的mapper程序
reduer:用户自己写的reduce程序
file:
打包文件到提交的作用中,
(1) map和reduce的执行文件
(2) map和reduce要用输入的文件,如配置文件
类似的配置还有-cacheFile, -cacheArchive分别用于向计算节点分发HDFS文件和HDFS压缩文件
jobconf:
提交作业的一些配置属性
常见配置:
(1) mapred.map.tasks: map task数目
(2) mapred.reduce.tasks: reduce task数目
(3) stream.num.map.output.key.fields:指定map task输出记录中key所占的域数目
(4) num.key.fields.for.partition指定对key分出来的前几部分做partition而不是整个
key