2019独角兽企业重金招聘Python工程师标准>>>

'''一句话总结: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_726182013-02-16 13:47:50,157 [main] INFO  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 80% comp lete2013-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 jobs2013-02-16 13:47:52,171 [main] INFO  org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 100% com plete2013-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 spaceat 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限制的。

转载于:https://my.oschina.net/wangjiankui/blog/109417

成也萧何,败也萧何---PIG JOIN 的replicated相关推荐

  1. 用飞桨做自然语言处理:神经网络语言模型应用实例

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 编者按: 语言模型的身影遍布在NLP研究中的各个角落,想要了解NLP领域,就不能不知道语言模型. 想要让模型能落地奔跑,就需借助深度学习框 ...

  2. 基于Mathematica的机器人仿真环境(机械臂篇)

    目的 本文手把手教你在 Mathematica 科学计算软件中搭建机器人的仿真环境,具体包括以下内容: 1 导入机械臂的三维模型 2 正\逆运动学仿真 3 碰撞检测 4 轨迹规划 5 正\逆动力学仿真 ...

  3. 基于 Mathematica 的机器人仿真环境(机械臂篇)

    目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些函数,所以请使用最新版.robin ...

  4. [转]基于Mathematica的机器人仿真环境(机械臂篇)

    目的 本文手把手教你在 Mathematica 科学计算软件中搭建机器人的仿真环境,具体包括以下内容: 1 导入机械臂的三维模型 2 正\逆运动学仿真 3 碰撞检测 4 轨迹规划 5 正\逆动力学仿真 ...

  5. 简要评说Adobe的FlashPlayer的渲染算法

    前些时候看到CSDN上一篇文章介绍FlashPlayer的渲染效能是HTML 5的数倍文章,回想起几年来对Adobe的FlashPlayer研究,想从理论上探究一下为什么会有这样的结果,同时也解释一下 ...

  6. 今天的面试官是个锤子,Spring为什么建议使用构造器来注入?

    欢迎关注方志朋的博客,回复"666"获面试宝典 本文的内容主要是想探讨我们在进行Spring 开发过程当中,关于依赖注入的几个知识点.感兴趣的读者可以先看下以下问题: @Autow ...

  7. Spring官方为什么建议构造器注入?

    以下文章来源方志朋的博客,回复"666"获面试宝典 前言 本章的内容主要是想探讨我们在进行 Spring 开发过程当中,关于依赖注入的几个知识点.感兴趣的读者可以先看下以下问题: ...

  8. Spring为什么建议构造器注入?

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源:https://juejin.cn/post/6844904056230690824 前言 本章的内容主要是想探讨我们在进 ...

  9. puppet、Ansible、SaltStack 自动化运维工具简单对比

    puppet: 有产品线已经在用,优点是历史悠久,比较成熟,在可远程可本地,功能强劲,不过这厮批量执行功能没得,为了批量执行个命令写个配置文件,好像有点大刀砍蚊子腿的感觉了,而且有客户端在,和授权系统 ...

  10. Spring为什么建议使用构造器来注入?

    作者 | Richard_Yi 来源 | juejin.cn/post/6844904056230690824 前言 本章的内容主要是想探讨我们在进行Spring 开发过程当中,关于依赖注入的几个知识 ...

最新文章

  1. sqlserver 参数化查询 允许为null_1+Null 居然等于 Null
  2. Cinder 的 I/O QoS
  3. 关于#!/bin/sh 和 #!/bin/bash 的差别
  4. openjdk-alpine镜像无法打印线程堆栈和内存堆栈问题
  5. python 的csr_python的高级数组之稀疏矩阵
  6. 三次握手 四次握手 与socket函数的关系
  7. w ndows7文档加密取消,win7文件夹怎么加密?windows7文件加密方法
  8. 关于feign开启hystrix导致用户鉴权失败
  9. 微信小程序之:小程序接入高德地图SDK
  10. .net面试问答(大汇总)(转)
  11. 教你玩转CSDN博客
  12. Windows命令行优美化:FluentTerminal安装与配置
  13. 硬笔书法教学:看了都舍不得擦掉的粉笔字,网友纷纷夸赞“行走的打印机”
  14. 如何利用百度知道推广网站
  15. grads插值_GrADs常用函数
  16. QTableView使用方法小结
  17. 队列——数据结构严蔚敏C语言版
  18. java 串行_java串行化
  19. 微信发朋友圈和朋友圈点赞测试用例
  20. 重点来了,具有优质脂肪的坚果居然是减肥的好帮手!

热门文章

  1. xampp 运行 yaf框架
  2. PHP中的单例模式(可用于数据库连接维护)
  3. ProGuard的各种参数说明
  4. “只要就“其实是废话,没有任何用处
  5. OpenJDK8和OpenJDK8u的差异
  6. 没有com.sun.tools.javac.main的解决办法
  7. 以围棋来说,人工智能程序跟通常程序差异在哪里
  8. java 调用oracle函数_java – 用Spring的SimpleJdbcCall来调用Oracle函数
  9. python 打印三维数据_Python中的面向对象编程(二):数据隐藏和对象打印
  10. 信息与计算科学偏计算机的学校,信息与计算科学:披着计算机“外衣”的数学专业...