如何在hadoop map reduce程序的每个Map器中全局访问一个巨大的dict?

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

我正在对大量的网络日志进行共现分析。我计算了每一项的发生时间,以及每一项的共发生时间 <item1, item2> 使用hadoop。
现在,我要计算一对的相关测度 <item1,item2> ,例如 n_12/(n_1*n_2) ,在哪里 n 表示项目或项目对的发生或共发生次数。我把数据整理成:

key: item1
value: [(item1, n_1) (item2, n_12) ... (itemk, n_1k)]

我在想我怎么知道 n_2, ..., n_k 在处理有关的键值时 item1 ?
谢谢你的帮助。

smdnsysy

smdnsysy1#

你的意思是你需要在每个Map器中访问一个特定的字典?您可以使用hadoop的“分布式缓存”功能。这适用于较小的字典。这本词典能有多大?如果是在gbs中,您可能不得不采用reduce-side-join。

相关问题