为了提高我对大数据处理技术的理解,我一直在阅读地图/还原技术,但我对以下几点还不太清楚:
map
函数不是仍然很慢吗?比如说,10个工作人员/线程/机器/cpus/什么的?例如,如果数据集是10亿条记录,这意味着每个工作人员仍然需要迭代超过1亿条记录,而且转换仍然需要存储在某个地方,以便将数据因子上的processing.。
作为一个额外的问题,我想要做的是在一个数据集上生成一个实时(<100 is响应时间)搜索解决方案,该数据集有2,000万到5,000万条记录,结果可以在1-3个字段上排序,并使用嵌套、分组和/OR查询查询大约20-30个不同的字段。地图/缩减可能是我所做的最好的方法吗?
发布于 2012-02-21 03:33:20
map函数将提取数据子集(在最终的输出格式中),减少函数将对其执行该子集。由于map是提取的,因此有理由期望索引将是执行速度的一个主要因素。任何时候,当你看到数十亿的记录,就需要适当的优化和适当的平台,以保持它们的及时性。
映射函数的输出将需要存储在易于操作的地方,这是不可避免的。
Map/Reduce为您提供了将搜索分割成更小、更易于管理的块的机会,因此适合您的任务。请记住,除非您使用多个系统,简单地向任务中添加线程可能会适得其反,因为这将增加为它们提供服务所需的上下文切换。我不会为每个系统分配比物理内核数量更多的线程,同时也为延迟做好准备,而线程则争夺磁盘访问或NIC访问。
你面前有一项相当艰巨的任务,我想看看其他人是如何实现这样的系统的,看看我是否能够重用其中的一个,而不是自己去做。如果这是一次智力锻炼,那么我希望你能在某个地方的博客文章中分享这些考验、磨难和结果。
https://stackoverflow.com/questions/9376545
复制相似问题