如果hadoop是解决我遇到的问题的正确工具,我很想知道。
我正在构建与2个数据集相匹配的脱机流程(每月一次或一个季度一次):A和B。
数据集A位于Oracle上,数据集B是XML文件。数据集A大约有2000万条记录,数据集B则有600万条记录。
每个记录代表一首音乐歌曲,并具有以下格式:
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是完成这项工作的合适工具吗?
谢谢。
最佳答案
它应该工作。但是,您的数据集不足以证明使用hadoop是合理的。您可能只可以在单个强大的服务器上运行它。您需要做的是首先将较小的数据集放入distcache中,以均匀地分布在不同的节点上,然后可以将第二个较大的数据集从oracle数据库中拉出并上传到HDFS中。然后启动将匹配两个数据集的 map 作业。产生输出只是标准的map-reduce编程。
关于hadoop - 使用Hadoop匹配大型数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372333/