草庐IT

HashPartitioner

全部标签

Hadoop 的默认分区器 : HashPartitioner - How it calculates hash-code of a key?

我试图了解MapReduce中的分区,我了解到Hadoop有一个默认的分区程序,称为HashPartitioner,分区程序有助于在决定给定键将转到哪个reducer时。从概念上讲,它是这样工作的:hashcode(key)%NumberOfReducers,where`key`isthekeyinpair.我的问题是:HashPartitioner如何计算key的哈希码?是简单地调用key的hashCode()还是此HashPartitioner使用一些其他逻辑来计算key的哈希码?谁能帮我理解一下? 最佳答案 默认的分区器简单地

scala - HashPartitioner 是如何工作的?

我阅读了HashPartitioner的文档.不幸的是,除了API调用之外,没有太多解释。我假设HashPartitioner根据键的散列对分布式集进行分区。例如,如果我的数据是这样的(1,1),(1,2),(1,3),(2,1),(2,2),(2,3)所以分区器会将其放入不同的分区中,相同的键落在同一个分区中。但是我不明白构造函数参数的意义newHashPartitoner(numPartitions)//WhatdoesnumPartitionsdo?对于上面的数据集,如果我这样做,结果会有什么不同newHashPartitoner(1)newHashPartitoner(2)ne