使用Hadoop匹配大型数据集?

时间:2010-03-03 15:07:36

标签: hadoop

如果haddop是我遇到的问题的正确工具,我很想知道。

我正在构建匹配2个数据集的离线流程(每月一次或每季度一次):A和B. 数据集A位于Oracle上,数据集B是XML文件。数据集A约为20M记录,数据集B为6M记录 每条记录代表一首音乐歌曲,格式如下:

song {
  songid:

  // type of string , avg_num_of_titles_per_song=1.4 , std_deviation=1.9
  titles:[] 

  // type of string  avg_num_of_performers_per_song=1.5 std_deviation=0.9
  performers:[] 
}

两条记录匹配如果:      - 使用精确匹配或语音算法或距离算法至少一个标题匹配      - 至少在使用相同算法的表演者比赛中:精确,语音,距离等(我们仍在评估匹配算法)

此过程的输出是2个数据集:  (1)单个匹配,其中A中的记录在B中仅匹配一次,而B中的相同记录在A中仅匹配一次。  (2)多场比赛

hadoop会成为这项工作的合适工具吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

它应该工作。但是,您的数据集并不足以证明使用hadoop是合理的。你可以在一个强大的服务器上运行它。您需要做的是首先将较小的数据集放入distcache以均匀分布在不同的节点上然后您可以从oracle数据库中提取第二个较大的数据集并将其上传到HDFS。然后启动一个匹配两个数据集的地图作业。生成输出只是标准的map-reduce编程。