给定一个包含1PB数据的云存储文件夹,对这些数据进行排序最快的方法是什么?很容易对其小块进行排序,但将它们合并为更大的排序输出将需要更长的时间,因为在某个时刻,单个进程将不得不合并整个事件。我想避免这种情况,并有一个完全分布式的解决方案,有没有办法?如果是这样,是否有适合在S3中对数据进行排序的实现?对云中的大量数据进行排序?
1
A
回答
2
由于您需要排序的数据量超过RAM(很多),唯一合理的方式(据我所知)是先对块进行排序,然后将它们合并在一起。
Merge Sort是完成此任务的最佳方式。您可以使用并行进程同时对不同的数据块进行排序,这可以加快排序速度。
的事情是,你做了排序块后,你不必有单过程完成所有合并的,你可以有多个进程同时合并不同的块:
该算法使用并行合并算法,不仅可以并行化数组的递归分割,还可以合并操作。如果与快速稳定的顺序排序(例如插入排序)和快速顺序合并(作为合并小数组的基本情况)结合使用,它在实践中表现良好。
这是一个link,它提供了关于合并算法的更多信息(以防万一)。
0
坏消息 - 你不能避免多个排序文件的k合并。 好的是你可以并行地做一些操作。
相关问题
- 1. 在SQL Server 2005中对大量数据进行排序
- 2. 对combobox中的数据进行排序不区分大小写
- 3. 在Excel中对数据进行排序
- 4. 根据每个矢量的大小对C++中的矢量进行排序
- 5. 根据类中的变量对类的向量进行排序
- 6. 如何根据出现的UNIX数量对行进行排序?
- 7. 在大型数据集中对熊猫进行排序
- 8. 在redis中对大数据进行排序
- 9. 对数据进行排序MySQL的
- 10. 对sql服务器中的排序数据进行排序
- 11. 更复杂的排序:如何对数据进行分类并对类别中的数据进行排序? (Python)
- 12. 如何根据JavaScript中的大小对较大的数组进行排序?
- 13. Matlab:根据矢量对数据集进行排序
- 14. 如何使用Hadoop对任意大量的数据进行排序?
- 15. 排序大量数据excel
- 16. 在Python中对变量进行排序?
- 17. Django对大量数据进行分页
- 18. Collections.sort没有对数据进行排序
- 19. Powershell:对数据集进行排序
- 20. 如何对数据帧进行排序
- 21. 按数据值对QTreeWidgetItem进行排序?
- 22. 使用Eloquent对数据进行排序
- 23. 如何对数据表进行排序
- 24. 根据票数对人进行排序
- 25. 如何对数据进行排序
- 26. Matlab如何对数据进行排序?
- 27. 对数据进行排序成树
- 28. Rails - 如何对数据进行排序
- 29. 如何根据问题的数量对单词进行排序?
- 30. 根据缺失值的数量对列进行排序