2013-02-14 98 views
0

我有很多页面(5.000.000.000+),我需要构建反向链接结构。 对于每个页面,我需要提取所有出站链接。数据结构的最佳设计(大数据)

例如为原始数据。

www.mypage1.com = outbound1, outbound2, outbound3 
www.mypage2.com = ouput4, outbound2, outbound1 

预期结果。

outbound1=www.mypage1.com,www.mypage2.com 
outbound2=www.mypage1.com,www.mypage2.com 
outbound3=www.mypage1.com 
outbound4=www.mypage2.com 

其实,我使用hadoop map-reduce,它工作正常。但经过一些分析,我意识到一些网站至少有500MB的入站链接信息。

而且5.000.0000.000页次500 MB的是大量的数据...

的每个网址都为100个字节长度,所以我的第一个暗示是做出某种散列以减少每个URL的大小。但是这会给流程增加一些开销,因为我们需要一个服务来检索一个给定url和恶意的散列。

那么,您认为最好的方法是什么?有任何想法吗?

+1

你不需要大数据结构,你可能需要oracle db。 – 2013-02-14 16:32:20

+2

2.5艾字节?真?即使你可以将每个URL压缩成一个字节(通过Magic™),你也需要25PB。如果你确实说出了真相,我建议你与可能在你的团队中的专家之一交谈(如果他们不是这样,请雇用一些专家。)相比于所有的存储和计算能力,它们几乎没有成本。) – Carsten 2013-02-14 16:45:24

+0

为什么我会对这个问题撒谎吗??一个简单的“我不知道,我从来没有遇到过这样的问题”应该已经足够了... – psabbate 2013-02-14 17:16:05

回答

1

尽管对单人团队不切实际的任务,我可以建议:

  1. 据“低功耗” 500MB将只有很少的链接,其中大部分将有一个小的一堆链接。所以你应该重新考虑你的链接分布。
  2. 要压缩链接,您可以在恢复的链接上使用trie(即com.google.mail)。
+0

我已经完成了链接分发,并且我更好地了解要做什么,谢谢!顺便说一句,恢复的链接是一个很好的,我会试一试。 – psabbate 2013-02-16 02:52:41