对某些人来说,这可能是一个有趣的问题:
假设:存储在sql server(rdbms)中的数据量为2-3 TB,请将其视为类似于amazons数据,即用户->他们看到/点击看到的内容->他们购买的内容
任务:制作一个推荐引擎(比如amazon),它向用户显示,购买这个的客户也购买了这个->如果你喜欢这个,那么你可能会喜欢这个->(也)一种数据挖掘来预测未来的购买习惯(数据挖掘)。以此类推,基本上是一个reco引擎。
问题:由于数据量巨大(5-6年的用户习惯数据),我认为hadoop是最终的解决方案。现在的问题是,使用什么技术工具组合?即。,
hdfs:底层文件系统
hbase/hive/pig:?
mahout:为了运行一些算法,我假设使用map-reduce(遗传、聚类、数据挖掘等)
-我错过了什么?为所有这些处理加载rdbms数据怎么样(sqoop代表hadoop?)
-在这一切结束时,我得到一个结果列表(reco's),或者有一种方法可以直接查询它并将它报告给我在.net中构建的前端??
我认为这个问题的答案,对于像我这样希望开始hadoop实验的人来说,可能是一个很好的讨论。
2条答案
按热度按时间d5vmydt91#
hbase可以适合您的场景。hdfs是底层文件系统。但是,除非使用hbase文件格式(hfile),否则不能在hbase的hdfs(任意格式)查询中加载数据
hbase与Pig先生集成,hive也与hbase集成。正如chris提到的,您可以使用thrift来执行查询(get,scan),因为这将提取特定的用户信息,而不是大量的数据集,它比使用mr更合适。
sdnqo3pr2#
对于从rdbms加载数据,我建议先查看bcp(从sql导出到平面文件),然后查看hadoop命令行,以便加载到hdfs中。sqoop对于正在进行的数据是很好的,但是对于您的初始加载来说,它的速度将是无法忍受的。
要从hadoop查询结果,您可以使用hbase(假设您想要低延迟查询),它可以从c#通过它的thrift api进行查询。