Apache Pig ObjectSerializer优化
2012-11-18 19:07
267 查看
最近又遇到一次Tasktracker OOM的问题,
分析过程如下:
1. 用MemoryAnalyzer分析heap dump, 如下图:
发现又是大量的String类型的内存占用.
进一步分析String的持有,如下:
发现是JobConf 对象持有了大量的string. 这个已经不奇怪了, hadoop要放很多job相关的配置到JobConf中,很多JobTracker
Tasktracker的OOM都跟这个有关.
继续看String的内容:
却是很多乱七八糟的内容,不像是可读的配置.
根据Entry的key查找pig源代码, 发现是这样的:
原来Pig将很多的对象序列化再编码成字符串存储在了JobConf中!
只有压缩ObjectSerializer的输出再编码了.
改了代码, 上线运行, 没问题!
mailing list里面一吼, 结果发现有人在我前两天提交了一样的功能.....
这个,,这个就怪为嘛我们的系统没有提前3天OOM呢? >.<
官方patch在这里:
PIG-3017
这类型的bug基本上是谁遇到的早,
谁就会有机会fix. 可遇不可求啊.
--
EOF --
分析过程如下:
1. 用MemoryAnalyzer分析heap dump, 如下图:
发现又是大量的String类型的内存占用.
进一步分析String的持有,如下:
发现是JobConf 对象持有了大量的string. 这个已经不奇怪了, hadoop要放很多job相关的配置到JobConf中,很多JobTracker
Tasktracker的OOM都跟这个有关.
继续看String的内容:
却是很多乱七八糟的内容,不像是可读的配置.
根据Entry的key查找pig源代码, 发现是这样的:
原来Pig将很多的对象序列化再编码成字符串存储在了JobConf中!
只有压缩ObjectSerializer的输出再编码了.
改了代码, 上线运行, 没问题!
mailing list里面一吼, 结果发现有人在我前两天提交了一样的功能.....
这个,,这个就怪为嘛我们的系统没有提前3天OOM呢? >.<
官方patch在这里:
PIG-3017
这类型的bug基本上是谁遇到的早,
谁就会有机会fix. 可遇不可求啊.
--
EOF --
相关文章推荐
- Apache性能优化技巧
- PHP测试与优化(1)-- Apache自带的压力测试工具ab(apache bench) - 简单使用
- LAMP 系统性能调优,第 2 部分: 优化 Apache 和 PHP
- Apache在 prefork模式下,优化连接数
- apache prefork模式优化错误
- LAMP 系统性能调优,第 2 部分: 优化 Apache 和 PHP(原创整理来自IBM)
- (转)Apache的KeepAlive设置与优化
- Apache Kylin Cube优化
- 网站性能优化之Apache调整
- 25个在Apache性能优化技巧上的一些推荐
- Apache优化[阮胜昌]
- Apache性能优化--启用gzip压缩
- 25个Apache性能优化技巧推荐
- 怎么优化设置apache的并发数量
- Apache重负荷服务器应如何优化?
- 优化Apache服务器的性能
- apache服务器优化
- apache 性能优化 MaxClients
- apache编译优化
- JavaSE-3min回顾并优化Object的equals方法