记录主动泄漏到 Hadoop Pig 中?

Posted

技术标签:

【中文标题】记录主动泄漏到 Hadoop Pig 中?【英文标题】:Records proactively spilled in Hadoop Pig? 【发布时间】:2012-09-11 22:37:24 【问题描述】:

我是 Hadoop 新手,对我的 pig 脚本中的命令行消息感到好奇。

Total records written : 7676
Total bytes written : 341396
Spillable Memory Manager spill count : 103
Total bags proactively spilled: 39
Total records proactively spilled: 32389322

最终结果显示为“成功!”。我仍然不确定。上面这些数字是什么意思?

谢谢。

【问题讨论】:

【参考方案1】:

前两个显示您的 MR 作业写入 HDFS 的总记录数/字节数。 在 MR 工作期间,可能发生并非所有记录都适合内存。 溢出计数器指示已将多少条记录写入数据节点的本地磁盘以避免内存不足。

Pig 使用两种方法来控制内存使用并在必要时进行溢出:

1。 Spillable Memory Manager:

这就像注册可溢出袋的中心位置。如果内存不足,此管理器 遍历已注册的包列表并执行GC

2. 主动(自我)溢出:

如果达到内存限制,包也会自行溢出(请参阅pig.cachedbag.memusage

回到你拥有的统计数据:

主动泄漏的袋子总数:已泄漏的袋子数 主动泄露的记录总数:这些包中的记录数

检查你工作的溢出统计数据总是好的,因为有很多溢出 可能表示巨大的性能损失需要avoided。

【讨论】:

以上是关于记录主动泄漏到 Hadoop Pig 中?的主要内容,如果未能解决你的问题,请参考以下文章

了解自己主动内存管理

内存泄漏

QByteArray导致的内存泄漏问题

AndroidStudio不自己主动加入新创建的文件到VCS

如何在 Hadoop 中的机器之间传输文件并使用 Pig 搜索字符串

Eclipse中的Web项目自己主动部署到Tomcat