本文主要是介绍Hive mapreduce报错:java.io.IOException: Split metadata size exceeded 10000000,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mapreduce报错:java.io.IOException: Split metadata size exceeded 10000000
一、问题现象
客户在用hive sql做几张表的组合分析,使用mr引擎。 因为其中有一张表超过5万个分区,数据总量超过8千亿条,因此运行过程中出现失败,报错如下所示:
org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl: Job init failed org.apache.hadoop.yarn.executions.YarnRuntimeException: java.io.IOException:Split metadata size exceeded 10000000. Aborting job job_1558160008053_0002
根据报错,分析得到出错原因: 该job的job.splitmetainfo文件大小超过限制;
从hadoop源码里面可以查询到,是因为 mapreduce.job.split.metainfo.maxsize 参数默认设置1千万导致的。
为什么采用默认的1千万还不够呢?这就要从 mapreduce.job.split.metainfo.maxsize 参数的含义说起:
job.splitmetainfo该文件记录split的元数据信息,如input文件过多,记录的文件结构信息超出默认设置就会报错;输入文件包括大量小文件或者文件目录,造成Splitmetainfo文件超过默认上限。 这个机制也是hadoop集群要求文件大小不能过小或目录过多,避免namenode出现元数据加载处理瓶颈。如block默认128M,则文件应大于这个&
这篇关于Hive mapreduce报错:java.io.IOException: Split metadata size exceeded 10000000的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!