python高效的hadoop大文件字数计算

zqdjd7g9  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(373)

我想实现一个用于字数计算的hadoop reducer。在我的reducer中,我使用一个哈希表来计算字数。但是如果我的文件非常大,哈希表将使用非常多的内存。如何解决这个问题(e、 g一个有1000万行的文件,每个减速机接收1亿个字他怎么计算一个哈希表需要1亿个键的字)我当前的实现是用python实现的。有没有一个聪明的方法来减少内存量?

plupiseo

plupiseo1#

最有效的方法是在Map器中维护词频的哈希Map,当它们达到一定大小(比如100000个条目)时,将它们刷新到输出上下文中。然后清除Map并继续(记住也要在cleanup方法中刷新Map)。
如果你还真的有一亿个单词,那么你要么需要等待很长一段时间,让reducer完成,要么增加你的集群大小,使用更多的reducer。

相关问题