unix:“./ process | sort”是如何工作的?

时间:2013-05-16 09:28:09

标签: linux unix sorting mapreduce pipe

要调试一些map / reduce作业,我经常使用一个基本上读取

的简单unix命令来测试它们
cat data/* | mapper | sort | reduce > out

现在一切正常,但我想知道map | sort命令会发生真正的

更确切地说:

  • 有人知道sort如何加载ram / cpu?

  • sort命令是否即时排序数据 ,还是等待地图作业完成(注意映射器使用STDOUT并且不等待计算结束输出数据)?

  • 使用相当多的输入数据似乎并没有像我期望的那样加载ram(我更喜欢观察cpu的峰值,但我并不是真的非常精确地测量它)。该过程是否有可能使用较少的ram作为输出信息量?

感谢您的回答:)

1 个答案:

答案 0 :(得分:3)

在Linux中,sort使用合并排序算法(来自http://en.wikipedia.org/wiki/Sort_(Unix))。合并排序可以将一些部分存储在磁盘上的临时文件中(在sort的情况下也是如此)。因此,该过程使用了合理数量的RAM(您可以通过--buffer-size选项指定使用多少RAM)。