5e:
作业的提交在任何一个节点上都可以做,最终都提交给jobtracker,jobtracker先对数据进行分区(split),一般情况下就是一个block,但不一定,接近block而已(不一定split刚好能够一个block);
input------>split----->map程序处理---->shuffle(sort merge)-------->reduce---->output
combiner 对reduce节点的数据输入做预处理:注意reduce程序必须可以预处理(比如求最大值可以,平均值就不可以)
5f:
作业调优:
1、需要的reducer数量
2、输入,大文件优于小文件
3、减少网络传输,压缩map输出
4、优化每个节点能运行的任务数:mapred.tasktracker.map.tasks.maximum mapred.tasktracker.reduce.tasks.maximum(缺省均为2)
5g:hadoop流
streaming 允许非java程序员编写mr程序;| 管道符链接