Hive碎碎念(10):任务常见问题与处理方法

问题1、map/reduce过程中报错:

第一种报错:“java.lang.OutOfMemoryError: GC overhead limit exceeded“
第二种报错:“java.lang.OutOfMemoryError: Java heapspace”
第三种报错:“running beyondphysical memory limits.Current usage: 4.3 GB of 4.3 GBphysical memory used; 7.4 GB of 13.2 GB virtual memory used. Killing container”。
分析:这三种报错是由于map task或reduce task在container中运行时处理数据需要的内存资源与申请分配到的资源不匹配造成,
处理:这时可以在原资源基础上调大对应的map和reduce申请资源的参数以及对应jvm参数:

  set mapreduce.map.memory.mb=6144;
  set mapreduce.map.java.opts=-Xmx4608M;(根据需要更改具体值,但这对参数的比例是1:0.75)
  set mapreduce.reduce.memory.mb = 8192;
  set mapreduce.reduce.java.opts = -Xmx6144M;(根据需要更改具体值,但这对参数的比例是1:0.75)

同时也可以提升vcore的数量,加快container的计算,降低oom的几率

  set mapreduce.map.cpu.vcores = 4
  set mapreduce.reduce.cpu.vcores = 8

问题2、MRAppMaster报错java.lang.OutOfMemoryError thrown from theUncaughtExceptionHandler

分析:如果job输入的数据很大,导致产生了大量的Mapper和Reducer,MRAppMaster压力很大,最终导致MRAppMaster内存不足
处理:这时可以适当调大am的相关内存参数:

  set yarn.app.mapreduce.am.command-opts=-Xmx4608M
  set yarn.app.mapreduce.am.resource.mb=8192
  set yarn.app.mapreduce.am.resource.cpu-vcores=10

问题3、客户端报错:java.io.IOException:Split metadata size exceeded 10000000

分析:hadoop参数重mapreduce.job.split.metainfo.maxsize 参数默认设置10M,
job.splitmetainfo该文件记录split的元数据信息,如input文件过多,记录的文件结构信息超出默认设置就会报错;输入文件包括大量小文件或者文件目录,造成Splitmetainfo文件超过默认上限。这个机制也是hadoop集群要求文件大小不能过小或目录过多,避免namenode出现元数据加载处理瓶颈。如block默认128M,则文件应大于这个,尽量合并小文件。
处理:可临时调整参数忽略此校验:

set mapreduce.job.split.metainfo.maxsize=-1

或者将此值设置的更大:

set mapreduce.job.split.metainfo.maxsize=20000000

问题4、因map数超阈值被kill

可根据集群预置调整map数
分析:map数主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小
1. 如果读取的表中有太多小文件会导致map数过多,可以通过设置以下参数在map执行前合并小文件,以降低map数:

 set hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
 set hive.hadoop.supports.splittable.combineinputformat = true;
 set mapreduce.input.fileinputformat.split.maxsize = 256000000;
 set mapreduce.input.fileinputformat.split.minsize.per.node=256000000;
 set mapreduce.input.fileinputformat.split.minsize.per.rack=256000000;

2.对于数据量过大的问题
1)如果文本类型文件,如txt、orc数据量太大,可以通过调整每个map处理的数据量来降低map数

  set mapreduce.input.fileinputformat.split.maxsize = 256000000;
  set mapreduce.input.fileinputformat.split.minsize = 256000000;

2)如果是lzo格式表,可以设置跳过文件索引

   set hive.lzo.use.index=false; 
 这时需搭配调高map的内存以及vcore数量
    set mapreduce.map.memory.mb=6144;(根据需要根据文件大小设置)
    set mapreduce.map.java.opts=-Xmx4608M;(这对参数的比例是1:0.75)
    set yarn.app.mapreduce.am.resource.cpu-vcores=10

注:如果因为数据量太大导致map和reduce运行缓慢,可以调大资源申请量(注意map和reduce对应的一对参数的设置比例为1:0.75)
// MAP YARN 申请内存

set mapreduce.map.memory.mb=6144;

// MAP JVM 内存

set mapreduce.map.java.opts=-Xmx4608M;(根据需要更改具体值)

// REDUCE YARN 申请内存

set mapreduce.reduce.memory.mb=8192;

// REDUCE JVM 内存

set mapreduce.reduce.java.opts=-Xmx4096M;(根据需要更改具体值)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,246评论 11 349
  • 数据问题 Q:使用Tunnel Java SDK上传数据,上传数据可以自动分配到各个分区吗? A:目前Tunnel...
    许此一生阅读 2,481评论 0 0
  • 1、spark thriftserver报以下错误,其他诸如hive/sparksql等方式均正常 ERRORAc...
    达微阅读 13,691评论 0 5
  • 以下是在学习和使用spark过程中遇到的一些问题,记录下来。 1、首先来说说spark任务运行完后查错最常用的一个...
    6ef163728b25阅读 17,067评论 0 4
  • 小文件问题的影响1.从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,...
    JayWolf阅读 1,673评论 0 0