Pig 无法处理大文件

Posted

技术标签:

【中文标题】Pig 无法处理大文件【英文标题】:Pig is not able to process big file 【发布时间】:2014-01-17 14:14:37 【问题描述】:

我是 Hadoop 和 Pig 的新手。

我已经设置了 3 个节点的 Hadoop 集群。我编写了一个 Pig 脚本,该脚本通常读取数据并在其上执行聚合函数。

当我执行具有 3600 万条记录的 4.8G 文件时,猪在 51 分钟内给出输出。

当我执行 7200 万条记录的 9.6G 文件时,猪脚本崩溃并且 Hadoop 出现以下错误。

无法从支持的错误中重新创建异常:AttemptID:attempt_1389348682901_0050_m_000005_3 信息:容器被 ApplicationMaster 杀死。 作业失败,hadoop 不返回任何错误消息

我正在使用 Hadoop 2.2.0 和 Pig 0.12.0。

我的节点配置是

主控:2 个 CPU,2 GB RAM 从站 1:2 个 CPU,2 GB RAM Slave2:1 个 CPU,2 GB RAM

您能否就此给我建议?

【问题讨论】:

您的 Pig 脚本中是否可能存在一些逻辑错误?见***.com/questions/12874975/… 相同的脚本正在成功运行具有 3600 万条记录的 4.8G 文件。我在 LOAD 操作脚本期间观察到的内容失败了。节点无法处理/加载 9 GB 文件。我们可以让 LOAD 操作并行吗? 啊,对,它工作过一次。如果文件是可拆分格式,那么您不必担心它会很大。也许 LOAD 可能由于输入文件的一些语法错误而失败,尽管通常它应该只是跳过一个损坏的记录,resp。将 null 放在它的位置。如果不查看日志、数据和脚本,就很难猜到。 我可以用 Hive 代替 Pig。蜂巢会帮我做并行处理。我正在对我的数据进行 Group By、Sum 和 Avg 类型的操作。我可以展示我的脚本。 您当然可以尝试 Hive,但不知道为什么在 Pig 中会出现此问题,因此无法确定 Hive 是否也会出现此问题。 Pig 应该可以很好地计算这种聚合。 【参考方案1】:

在尝试了猪之后。我搬到了 Hive。

我在使用 Pig 时观察到的情况:

我在 HDFS 中上传文件并在 Pig 中加载它。所以 Pig 再次加载该文件。我正在处理文件两次。

对于我的场景 Hive 适合。我在 HDFS 中上传文件并在 Hive 中加载该文件。这需要几毫秒。因为 Hive 可以无缝处理 HDFS 文件。因此无需在 Hive 表中再次加载数据。这样可以节省很多时间。

这两个组件都很好,对我来说 Hive 很合适。

感谢大家的宝贵时间和建议。

【讨论】:

以上是关于Pig 无法处理大文件的主要内容,如果未能解决你的问题,请参考以下文章

大数据:Parquet文件存储格式

大数据:Parquet文件存储格式

大数据 hadoop ------ pig hiveMahouthbase

无法在 RStudio 中处理大文件 [关闭]

大数据Hadoop生态圈:Pig和Hive

大数据分析处理框架——离线分析(hive,pig,spark)近似实时分析(Impala)和实时分析(stormspark streaming)