0

我在 Amazon 的 Elastic Map-Reduce 上使用 Pig 进行批量分析。我的输入文件位于 S3 上,并且包含由每行一个 JSON 字典表示的事件。我使用大象鸟 JsonLoader 库来解析输入文件。到目前为止,一切都很好。

在交互式 Pig 会话中处理存储在本地文件系统或 hdfs 上的大文件时,我遇到了问题。看起来如果输入文件大到可以拆分,大象鸟只处理过一个拆分,并且在拆分结束时处理停止并且没有错误消息。如果我从 S3 流式传输输入(在 S3 输入上没有文件拆分),或者我将文件转换为 Pig 可以直接读取的格式,我不会遇到同样的问题。

举一个具体的例子:一个有 833,138 行的文件最多只能处理 379,751 行(如果我在 Pig 中观察完成百分比,它会平稳地上升到 50%,然后跳到 100%)。我还尝试了一个包含 400,000 行的文件,并且处理得很好。

所以我的问题是:为什么大象鸟只处理一个拆分?我是否误解了交互模式下的 Pig 应该如何工作,或者发生了什么大错特错?

4

1 回答 1

0

Katia,如果您向 Pig 用户列表发送电子邮件,您会更快地获得帮助 :)。

请尝试 Pig 0.8.1(当前版本),如果您仍然遇到错误,请告诉我们。值得一提的是,我已经使用 EB Json 加载程序一年多来处理数百个 gig 文件,它们处理得很好,所以也许你的数据有些问题。

Spike Gronim - 已修复,本地模式现在与非本地模式基本相同(分布式缓存和倾斜连接除外)。升级。

于 2011-07-15T14:13:00.543 回答