1 、基本开发参数
-input"${INPUTS}" \ 输入路径,指的是hdfs上的路径
-output"${OUTPUTS}" \ 输出路径,指的也是hdfs上的路径
-mapper"python map.py" \ 执行map过程的代码的执行参数
-reducer"python red.py" \ 执行reduce过程的代码的执行参数
-file"map.py" \ 需要分发的文件(将上述map、reduce的代码文件分发到hdfs上)
2、优化参数(加粗部分还会在其他博文中进行详细解释)
-D stream.map.output.field.separator :设置map输出中key和value的分隔符
-D stream.num.map.output.key.fields : 设置map程序分隔符的位置,该位置之前的部分作为key,之后的部分作为value
(该参数个人认为是非常有用且使用频率非常高,会根据这个参数决定的key而进行分区。map的排序以及reduce的归并排序都和它息息相关)
-D map.output.key.field.separator : 设置map输出中key内部的分割符
-Dnum.key.fields.for.partition : 指定分桶时,key按照分隔符切割后,其中用于分桶key所占的列数(配合-partitionerorg.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner 使用)
-Dstream.reduce.output.field.separator:设置reduce输出中key和value的分隔符
-D stream.num.reduce.output.key.fields:设置reduce程序分隔符的位置
-D mapred.job.name=${JOB_NAME} \ # 任务名
-D mapred.map.tasks=${MAP_TASKS} \ # map个数