terasort 的工作原理

How terasort works

我尝试使用 hadoop terasort,它与 teragen 和 teravalid 配合使用效果很好。 然后我想知道 terasort 是如何工作的。我认为 terasort 的工作方式类似于 linux 中的 sort 命令。所以我制作了一个如下所示的文本文件:

I have a pen.
my name is ~
I went to my lab yesterday
...

然后 运行 terasort 但返回错误 "read past eof"。

我看到了"part-m-00000"是teragen生成的,但是看不懂。

请告诉我 terasort 是如何工作的。

EOF 表示文件在读取 1 tera 字节(随机分布的)数据之前已被完全消耗

因此它在尝试对任何内容进行排序之前退出

Terasort 不需要太字节的输入数据,但它假定数据采用 Teragen 生成的格式。更具体地说:

  • (10 字节键)(10 字节行标识)(78 字节填充符)\r\n
  • 密钥是集合 ' ' .. '~' 中的随机字符。
  • rowid 是作为 int 的右对齐行 ID。
  • 填充符由 7 行组成,每行 10 个字符,从 'A' 到 'Z'。