本文用来记录MR的使用,已经遇到的一些问题和解决方法
#使用Python执行MR
Mapper的写法
|
|
Reducer的写法
|
|
从上面的代码可以看出来,python的脚本需要从标准输入(sys.stdin)中接入数据。
执行Mapreduce
|
|
参数说明:
-D mapreduce.job.queuename用指定需要运行MR的队列
-input MR的输入
-output MR的输出
-mapper 指定执行MR中Mapper的程序
-reducer 指定执行MR中Reducer的程序
-file 需要一起上传的文件,如果python程序中使用了其他的数据文件,可以通过这个参数一起上传。
其他一些参数:
-D mapreduce.job.name Job的名称
-D mapreduce.job.user.name
-D mapreduce.job.node-label-expression
-D mapreduce.job.queuename
-D mapreduce.map.memory.mb
-D mapreduce.reduce.memory.mb