'''一句话总结:PIG 在2个表JOIN的时候,如果使用Using 'replicated' 会将后面的表分段读到内存中,从而加快JOIN的效率。但是如果load 到内存的数据超过JVM的限制就会报错==>
java.lang.OutOfMemoryError: Java heap space
内存溢出'''
情节:
年前写了一个用户session处理的PIG脚本,各种测试通过,数据OK,然后就Happy的回家过年了。T T悲剧的是,过年几天每天都发报错信息,还好依赖这个数据的后台没正是上线,不然死定了。回到公司查问题,发现总是执行到某一个JOIN的时候卡住,然后超过1200 s ,就被kill掉了。
2013-02-16 12:40:23,520 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - More inf ormation at: http://hd09:50030/jobdetails.jsp?jobid=job_201301221227_72618
2013-02-16 13:47:50,157 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 80% comp lete
2013-02-16 13:47:52,171 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - job job_ 201301221227_72618 has failed! Stop running all dependent jobs
2013-02-16 13:47:52,171 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 100% com plete
2013-02-16 13:47:52,175 [main] ERROR org.apache.pig.tools.pigstats.SimplePigStats - ERROR 2997: Unable to recreate exception f rom backed error: Task attempt_201301221227_72618_m_000000_1 failed to report status for 1201 seconds. Killing!
2013-02-16 13:47:52,176 [main] ERROR org.apache.pig.tools.pigstats.PigStatsUtil - 1 map reduce job(s) failed!
2013-02-16 13:47:52,178 [main] INFO org.apache.pig.tools.pigstats.SimplePigStats - Script Statistics:
再看详细报错信息:
Exception in thread "Thread for syncLogs" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2894)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:117)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:589)
at java.lang.StringBuilder.append(StringBuilder.java:220)
at java.io.UnixFileSystem.resolve(UnixFileSystem.java:108)
at java.io.File.<init>(File.java:329)
at org.apache.hadoop.mapred.TaskLog.getAttemptDir(TaskLog.java:267)
at org.apache.hadoop.mapred.TaskLog.getAttemptDir(TaskLog.java:260)
at org.apache.hadoop.mapred.TaskLog.getIndexFile(TaskLog.java:237)
at org.apache.hadoop.mapred.TaskLog.writeToIndexFile(TaskLog.java:316)
at org.apache.hadoop.mapred.TaskLog.syncLogs(TaskLog.java:369)
at org.apache.hadoop.mapred.Child$3.run(Child.java:141)
Exception in thread "LeaseChecker" java.lang.OutOfMemoryError: Java heap spac
擦!!怎么回事内存溢出呢!!以前都是好端端的没事呀。LIMIT 减少数据量试试===》数据出来了。
再看PIG语句
A = LOAD 'A/dt=2013-02-14' USING PigStorage('\u0001') AS (id:int,name:chararray);
B = LOAD 'B/*' USING PigStorage('\u0001') AS (id:int,gender:chararray);
C = FOREACH (JOIN A BY id , B BY id USING 'replicated') GENERATE A::id, A::name, A::gender;
Using 'replicated' ?这个语法是在join的时候把后面表也就是B的数据读到内存,会加快JOIN的速度。 我好像发现了什么,内存啊,内存,内存溢出。靠!!干掉Using 'replicated' ,再跑。===》数据出来了 。再和维护Hadoop集群的同事联系,果然,过年的时候为了减少集群的压力,修改了很多东西,真相大白。
成也萧何,败也萧何!Using 'replicated' 要慎用啊。最好还是不用,因为隐患太大,B表一直增长的话肯定会超过JVM限制的。
分享到:
相关推荐
在这个命令中,`input_path`是包含待Join数据的目录,而`output_path`则是处理后的结果将被写入的位置。具体参数可能因`hadoop_join.jar`的设计而异,需要参照该工具的文档或源码来理解和配置。 在执行Join查询时,...
标题 "PyPI 官网下载 | flask_replicated-2.0.tar.gz" 指示了这是一个从Python Package Index (PyPI) 下载的压缩包,名为 `flask_replicated-2.0.tar....要详细了解这个库的功能和用法,应查看解压后的源代码或其文档。
本文讨论了DRBD(分布式复制块设备)在实时应用程序中使用时,由于主节点意外离开集群(例如崩溃),导致重新同步所需时间过长的问题。DRBD是一个Linux内核模块和一些用户级工具的组合,其目的是实现在线存储复制。...
在UE4(Unreal Engine 4)中,创建和连接到Replicated服务器是网络多人游戏开发的核心部分。Replicated服务器是一种分布式系统,允许多个玩家通过网络连接到同一个游戏实例,实现同步的游戏体验。以下是关于“ue4...
Ehcache RMI Replicated Cluster 是一种分布式缓存解决方案,它使用远程方法调用(RMI)技术在多个节点之间复制数据,以实现高可用性和负载均衡。在大型分布式系统中,缓存是提高应用程序性能的关键组件,因为它可以...
NULL 博文链接:https://xq0804200134.iteye.com/blog/1814655
dsl.py这是保存和加载数据的方法。 RSM_train_test.py:这是显示如何训练RSM模型,然后测试其困惑性的示例。 RSM_Experiment.py:其中有两个实验。 (1)比较LDA和RSM的困惑(2)比较LDA,RSM和TF-IDF的精度和...
安装使用“ python setup.py install”安装django_replicated发行版。 将默认的django_replicated设置导入添加到您的settings.py : from django_replicated.settings import *在settings.py中,以标准方式配置您的...
1. 使用Thread或Runnable:通过继承Thread类或实现Runnable接口,我们可以创建自定义的线程来处理特定的任务,如数据读取、写入和复制。 2. ExecutorService与ThreadPoolExecutor:ExecutorService是Java并发框架的...
DB - Paxos Replicated State Machines as the Basis of a High-Performance.pdf Conventional wisdom holds that Paxos is too expensive to use for high-volume, high-throughput, data-intensive applications....
4.1.2 Replicated Join 4.1.3 Semi-join 技术点20 实现semi-join 4.1.4 为你的数据挑选最优的合并策略 4.2 排序 4.2.1 二次排序 技术点21 二次排序的实现 4.2.2 整体并行排序 技术点22 通过多...
Convergent and Commutative Replicated Data TypesMarc Shapiro, INRIA & LIP6, Paris, France Nuno Preguiça, CITI, Universidade Nova de Lisboa, PortugalCarlos Baquero, Universidade do Minho, ...
Apache Ignite的核心是内存数据存储,它使用了一种名为“内存数据网格”(In-Memory Data Grid)的架构。在Ignite中,数据分布在多个节点上,每个节点负责一部分数据,实现了数据的分区和复制,以提高数据访问速度...
复制的Softmax Replicated Softmax 的基本未经测试版本:@inproceedings{hinton2009replicated, title={Replicated softmax: an undirected topic model}, author={Hinton, Geoffrey E and Salakhutdinov, Ruslan R}...
在实际应用中,应关注内存使用、冲突检测、在途事务管理和恢复时的增量数据缓存。MGR还提供了节点管理功能,如失败节点的重新加入和错误节点的摘除,以及通过流量控制和大事务限制来优化系统性能。通常推荐使用3+1的...
ReplicatedMap是您的标准HashMap类型协议,但具有帮助程序方法,可轻松将其状态从一个映射复制到下一个映射。 甚至跨网络! 基本地图示例 var ReplicatedMap = require ( 'replicated-map' ) ; var rm = new ...
- **灵活性**: 用户可以根据实际需求调整本地缓存的大小,以平衡内存使用和性能之间的关系。 - **缺点**: - **维护成本**: 需要维护本地缓存和远程缓存之间的一致性。 - **配置复杂性**: 正确设置本地缓存的大小...