maptask的输出如何分配给reducetask
这就是分区问题
因为数据在MapTask阶段是用键值对的形式传递的
所以默认的分区规则是
Key的哈希值去模(取余)
key.hashcode()%NumreduceTask==余数是几 分区编号就是几
hash是一个算法,可以保证数据不变的情况下,哈希出来的结就会是一样。
hash一般作为校验数据的完整性而使用,一个完整的大的数据获取hash值,如果传输完毕,hash值发生改变就说明数据丢失。
maptask的输出如何分配给reducetask
这就是分区问题
因为数据在MapTask阶段是用键值对的形式传递的
所以默认的分区规则是
Key的哈希值去模(取余)
key.hashcode()%NumreduceTask==余数是几 分区编号就是几
hash是一个算法,可以保证数据不变的情况下,哈希出来的结就会是一样。
hash一般作为校验数据的完整性而使用,一个完整的大的数据获取hash值,如果传输完毕,hash值发生改变就说明数据丢失。