多くのページ (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 を指定してハッシュを取得するサービスとその逆を取得するサービスが必要になるため、プロセスにいくらかのオーバーヘッドが追加されます。
では、どのようなアプローチが最善だと思いますか? 何か案は?