渔舟唱晚的天空
——welkinwalker的遐想
摘要: map的输入由inputformat定制,这是一个java中的interface。要实现里面的两个方法,一个是inputsplit,recordreader,前者决定了怎么从最初的输入做partition,后者决定了怎么从读inputsplit。map的数量由inputsplit的数量决定,而reduce的数量则取决于partitioner接口的实现的数量决定。combine是在map后做的reduce。对于每个map真正的顺序应该是:先map,然后对map的结果根据key做sort,然后再对于sort的结果进行combine。map后面还包含多个步骤:shuffle--> merge 阅读全文
posted @ 2011-12-01 16:13 welkinwalker 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 先说对于key的全排序。其实如果只有一个partition,则最终的结果肯定是全排序的,因为一个partition对应一个reduce的task,然而reduce的输入本来就是对key有序的。当然只有一个partition不能体现出分布式的威力。如果是分多个partition呢,则只要确保partition是有序的就行了。比如:partition1中的最小值比partition2的最大值要大。但是这里又有另外一个问题,就是你在定义每个partition的边界的时候,可能会导致每个partition上分配到的记录数相差很大,这样数据最多的partition就会拖慢整个系统。这时候我们期望的就是每 阅读全文
posted @ 2011-12-01 15:21 welkinwalker 阅读(12326) 评论(0) 推荐(0) 编辑