文章目录
- 客户端报错: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