如何使用Hadoop MapReduce索引一个非常大的图



我有一个非常大的图形(1000亿个链接,1TB),以长文本文件的形式,其中每一行定义图形弧。

<<p> 参考文件/strong>
page1, page2
page3, page10
page5, page 1
.
.
.
pageN, pageM

其中pageN可以是任何网页。

为了节省空间,我想将此图转换为索引版本(包含两个文件)。

索引文件(节点文件):

page1, 1
page2, 2
page3, 3
page4, 4
.
.
.
pageN, N

和arc文件(链接):

1, 2
3, 10
5, 1
.
.
.
N, M

是否有MapReduce(Hadoop, Pig等)算法来有效地完成这种转换?

对于Pig来说这很容易。首先,您需要获得图表中所有唯一页面的列表。你应该能够得到这个与DISTINCT和可能UNION如果有页面在一个列,没有出现在另一个。接下来,您可以使用RANK函数为每个页面分配一个唯一的ID。保存为第一个文件。

然后,您可以使用JOIN将这些id带入您的图边列表。保存为第二个文件。

如果您对任何步骤有任何问题,请随时发布有关该步骤的具体问题,我们可以帮助您解决。

相关内容

  • 没有找到相关文章

最新更新