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 を行っていますが、問題なく動作しています。しかし、いくつかの分析の後、一部の URL には少なくとも 500 MB のインバウンドリンク情報が含まれていることがわかりました。

そして、5.000.0000.000 ページ × 500 MB は大量のデータです...

各 URL の長さは 100 バイトなので、最初のヒントは、何らかのハッシュを作成して各 URL のサイズを小さくすることです。ただし、これにより、URL を指定してハッシュを取得するサービスとその逆を取得するサービスが必要になるため、プロセスにいくらかのオーバーヘッドが追加されます。

では、どのようなアプローチが最善だと思いますか? 何か案は?

4

1 に答える 1

1

一人のチームの非現実的なタスクにもかかわらず、私は提案することができます:

  1. 「パワーロー」によると、500mbにはリンクがほとんどなく、ほとんどのリンクには小さなリンクがあります。したがって、リンクの分布を再推定する必要があります。
  2. リンクを圧縮するには、元に戻されたリンク(com.google.mailなど)でtrieを使用できます。
于 2013-02-15T05:37:42.987 に答える