设为首页 加入收藏

TOP

Hadoop作业性能指标及参数调优实例(三)Hadoop作业性能参数调优方法(二)
2015-11-21 01:59:14 来源: 作者: 【 】 浏览:1
Tags:Hadoop 作业 性能 指标 参数 实例 方法
in thread "main"

分析:Permanent Generation space(Non-heapsize)不够

解决方法:

增加PermSize

exportHADOOP_CLIENT_OPTS="-XX:MaxPermSize=512M $HADOOP_CLIENT_OPT"

?

?

二、Hadoop集群报告异常,发现个别作业导致集群事故

用户作业性能差不仅影响作业本身,在极端情况下会造成整个Hadoop集群故障。在实践中,曾经发生两个Hadoop Pig作业因为数据类型错误,产生大量Stderror日志,将几百个节点空间用完,造成集群事故。 用户本人因为作业仍然在运行,并没有采取任何措施,直到作业被系统管理员强制终止。这个事件充分暴露了Hadoop开发员对作业性能差可能产生的严重后果认识不足。

?

Hadoop 2的作业日志包括Job History日志和Container日志,其中Job History日志包括作业启动时间、结束时间,每个作业任务的启动时间、结束时间,各种Counter信息等。Container日志包含Application Master日志和普通Task日志,它们均存放在Hadoop安装目录下的userlogs目录中的application_xxx目录下,其中ApplicationMaster日志目录名称为container_xxx_000001,普通task日志目录名称则为container_xxx_000002,container_xxx_00000,每个目录下包含三个日志文件:stdout、stderr和syslog。作业日志有若干水平:OFF, FATAL, ERROR, WARN,INFO, DEBUG, TRACE and ALL,默认设置是INFO。

?

通过异常增加的日志文件,我们找到了Job Id,这2个Hadoop Pig作业运行了7个多小时,反复输出Stderr,大小超过200GB,分布在200多个节点上。终止作业后,系统管理员发现集群的NON-DFS空间已使用1PB,不得不重启100多个节点。这个事故发生在eBay Eagle上线前,事后HadoopEagle专门针对NON-DFS空间的快速增长设置了监测和预警机制。 同时我们也建议用户更改日志的默认配置,以减少日志的存储。

mapreduce.map.log.level=WARN,TLA

mapreduce.reduce.log.level=WARN,TLA

?

日志文件异常增加:

\

日志文件内容:

Failed to parse field: N for ORGNL_SHPNG_CHRG_RTG_VAL_NUM type short

java.lang.NumberFormatException: For input string:"N "

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)

atjava.lang.Integer.parseInt(Integer.java:449)

atjava.lang.Integer.valueOf(Integer.java:554)

atcom.ebay.hadoop.platform.pig.TableStorageLoadFunc.parseObject(TableStorageLoadFunc.java:155)

atcom.ebay.hadoop.platform.pig.TableStorageLoadFunc.getValueTuple(TableStorageLoadFunc.java:130)

atcom.ebay.hadoop.platform.pig.TableStorageLoadFunc.getNext(TableStorageLoadFunc.java:90)

atcom.ebay.hadoop.platform.pig.TableStorage.getNext(TableStorage.java:305)

atorg.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java:194)

atorg.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:530)

atorg.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)

atorg.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)

atorg.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763)

atorg.apache.hadoop.mapred.MapTask.run(MapTask.java:363)

atorg.apache.hadoop.mapred.Child$4.run(Child.java:255)

atjava.security.AccessController.doPrivileged(Native Method)

atjavax.security.auth.Subject.doAs(Subject.java:396)

atorg.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232)

atorg.apache.hadoop.mapred.Child.main(Child.java:249)

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇《Redis设计与实现》学习笔记-主.. 下一篇InstallGoldengateVeridata

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: