m*******y 发帖数: 904 | 1 比如分布式的机器上处理和存了很多数据,怎么高效的把前1000个data (assuming数
据有某种先后或优先的级别关系)找出来? |
u***n 发帖数: 21026 | 2 假设每个分布式里面都是排序的,每个分布式的前1000个拿出来做排序,肯定。找到前
1000个
【在 m*******y 的大作中提到】 : 比如分布式的机器上处理和存了很多数据,怎么高效的把前1000个data (assuming数 : 据有某种先后或优先的级别关系)找出来?
|
j**********r 发帖数: 3798 | 3 这不是典型的mapreduce?
【在 m*******y 的大作中提到】 : 比如分布式的机器上处理和存了很多数据,怎么高效的把前1000个data (assuming数 : 据有某种先后或优先的级别关系)找出来?
|
w*****w 发帖数: 53 | 4 "教你如何迅速秒杀掉 99%海量数据处理面试题" |
H**********5 发帖数: 2012 | 5 赞这个
【在 w*****w 的大作中提到】 : "教你如何迅速秒杀掉 99%海量数据处理面试题"
|
m*******y 发帖数: 904 | 6 如果这个问的重点不是数据已经分布存好了,然后问怎么处理海量数据,
而是问怎么设计这个分布式系统(收到新的数据/request怎么处理, 怎么存, etc)
可以尽量避免这一类数据处理,而仍然可以高效的达到目的呢?
【在 w*****w 的大作中提到】 : "教你如何迅速秒杀掉 99%海量数据处理面试题"
|
c*******e 发帖数: 373 | 7
假设有100个机器,假设数据基本随机分布在各个机器里,那么每个机器中,把前20个
拿出来排序,就很可能找到前1000个
如果发现有某机器提供的20个数据中,最小的那个数据在总排名中是前1000的,说明此
机器中20名之后的数据,有可能是总排名中前1000的,但是第一次没拿出来。那么根据
首次20个数据中最小的数据在总排名中的位置,适当再次从此机器取数据,当然是排名
越靠前,那么再次取的数据更多一点比较好。
整个算法的前提是,数据基本随机平均分布在各个机器中。如果数据是明显有序分布的
,那么算法就不合适了
【在 u***n 的大作中提到】 : 假设每个分布式里面都是排序的,每个分布式的前1000个拿出来做排序,肯定。找到前 : 1000个
|