Hadoop平台作业参数设置关于mapreduce.job.split.metainfo.maxsize的说明
生活随笔
收集整理的這篇文章主要介紹了
Hadoop平台作业参数设置关于mapreduce.job.split.metainfo.maxsize的说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Hadoop平臺作業參數設置關于mapreduce.job.split.metainfo.maxsize的說明
1、MR程序時執行時報錯:
? ?YarnRuntimeException: java.io.IOException:Split metadata size exceeded 10000000.?
2、原因分析:
? ?輸入文件包括大量小文件或者文件目錄,造成Splitmetainfo文件超過默認上限。
??
3、解決辦法:
? ?在mapred-site.xml配置文件中:
? ?修改默認作業參數mapreduce.jobtracker.split.metainfo.maxsize =100000000?
? ?或者mapreduce.jobtracker.split.metainfo.maxsize = -1 (默認值是1000000)
? ?
? <property>
? ? <name>mapreduce.job.split.metainfo.maxsize</name>
? ? <value>10000000</value>
? </property>
4、深入分析:
? ?job.splitmetainfo該文件記錄split的元數據信息,如input文件過多,記錄的文件結構信息超出默認設置就會報錯;
? ?這個機制也是Hadoop集群要求文件大小不能過小或目錄過多,避免namenode出現元數據加載處理瓶頸,這種業務一般會出現在存儲圖片上。
? ?如block默認128M,則文件應大于這個,盡量合并小文件。
5、源碼分析:
? ?org.apache.hadoop.mapreduce.split.JobSplit
? ?可以看出splitmetainfo存儲的文件結構信息內容:
? ?@Override
? ? public String toString() {
? ? ? StringBuffer buf = new StringBuffer();
? ? ? buf.append("data-size : " + inputDataLength + "\n");
? ? ? buf.append("start-offset : " + startOffset + "\n");
? ? ? buf.append("locations : " + "\n");
? ? ? for (String loc : locations) {
? ? ? ? buf.append(" ?" + loc + "\n");
? ? ? }
? ? ? return buf.toString();
? ? }
? }
1、MR程序時執行時報錯:
? ?YarnRuntimeException: java.io.IOException:Split metadata size exceeded 10000000.?
2、原因分析:
? ?輸入文件包括大量小文件或者文件目錄,造成Splitmetainfo文件超過默認上限。
??
3、解決辦法:
? ?在mapred-site.xml配置文件中:
? ?修改默認作業參數mapreduce.jobtracker.split.metainfo.maxsize =100000000?
? ?或者mapreduce.jobtracker.split.metainfo.maxsize = -1 (默認值是1000000)
? ?
? <property>
? ? <name>mapreduce.job.split.metainfo.maxsize</name>
? ? <value>10000000</value>
? </property>
4、深入分析:
? ?job.splitmetainfo該文件記錄split的元數據信息,如input文件過多,記錄的文件結構信息超出默認設置就會報錯;
? ?這個機制也是Hadoop集群要求文件大小不能過小或目錄過多,避免namenode出現元數據加載處理瓶頸,這種業務一般會出現在存儲圖片上。
? ?如block默認128M,則文件應大于這個,盡量合并小文件。
5、源碼分析:
? ?org.apache.hadoop.mapreduce.split.JobSplit
? ?可以看出splitmetainfo存儲的文件結構信息內容:
? ?@Override
? ? public String toString() {
? ? ? StringBuffer buf = new StringBuffer();
? ? ? buf.append("data-size : " + inputDataLength + "\n");
? ? ? buf.append("start-offset : " + startOffset + "\n");
? ? ? buf.append("locations : " + "\n");
? ? ? for (String loc : locations) {
? ? ? ? buf.append(" ?" + loc + "\n");
? ? ? }
? ? ? return buf.toString();
? ? }
? }
總結
以上是生活随笔為你收集整理的Hadoop平台作业参数设置关于mapreduce.job.split.metainfo.maxsize的说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive客户端secureCRT中文显示
- 下一篇: hive指定多个字符作为列分隔符的问题说