Hive 调整inputsplit size来增加MAP数
2013-09-18 11:45
92 查看
http://boylook.itpub.net/post/43144/531420
线上一个Hive(CDH4.2.0)的清洗Job出错,查看日志发现其中一个MAP OOME:
查看了日志这个HQL是2个表进行Join,splits=2即开了2个MAP进行分别处理,其中一个大表123MB(<dfs.block.size=128MB),500W行左右,应该是数据量超过了MAP的内存了,通过对比前一天的日志可以确认:
由于是临时表,设置了mapred.reduce.tasks=20重跑新生成临时表,Join清洗成功:
由于MR的inputsplit size=min{minsplitsize,max{maxsplitsize,blocksize}},因此想是否可以通过设置mapred.max.split.size=32MB来起多个MAP这种方式解决呢,尝试后发现仍然是2个MAP;以为是BugMAPREDUCE-2046,但是CDH4.2已经merge进来,看了一圈由于sequencefileinputformat是老的mapreduce api接口,修改一下hive.input.format然后通过设置mapred.map.tasks增加果然起了预期的MAP数;
线上一个Hive(CDH4.2.0)的清洗Job出错,查看日志发现其中一个MAP OOME:
查看了日志这个HQL是2个表进行Join,splits=2即开了2个MAP进行分别处理,其中一个大表123MB(<dfs.block.size=128MB),500W行左右,应该是数据量超过了MAP的内存了,通过对比前一天的日志可以确认:
由于是临时表,设置了mapred.reduce.tasks=20重跑新生成临时表,Join清洗成功:
由于MR的inputsplit size=min{minsplitsize,max{maxsplitsize,blocksize}},因此想是否可以通过设置mapred.max.split.size=32MB来起多个MAP这种方式解决呢,尝试后发现仍然是2个MAP;以为是BugMAPREDUCE-2046,但是CDH4.2已经merge进来,看了一圈由于sequencefileinputformat是老的mapreduce api接口,修改一下hive.input.format然后通过设置mapred.map.tasks增加果然起了预期的MAP数;
相关文章推荐
- hive优化--增加减少map数
- hive优化--增加减少map数
- 调整type="file"时的input的
- Hadoop源码解析之: TextInputFormat如何处理跨split的行
- C++ Vector size和capcity的增加方式
- 为金蝶K3页面增加批量导入选项(其它出库、其它入库、调拨单、生产领料、外购入库、成本调整)
- 如果分区满了,如何增加调整分区的容量
- .size()的使用,点击增加更多
- 最新版本的Hive 0.13发布,增加ACID特性
- Hadoop中 MapReduce中InputSplit的分析
- WM_SIZE与窗口大小的调整
- angularjs input上传图片前获取图片的Size
- Input的size与maxlength属性的区别
- 【表单设计】input的size和maxlength属性
- HTML5每日一练之input新增加的5种其他类型1种标签应用
- caffe: test code Check failed: K_ == new_K (768 vs. 1024) Input size incompatible with inner product parameters.
- ios使用-webkit-text-size-adjust禁止调整字体大小
- hbase1.1.3版本二级索引-split相关源码调整
- bootstrap fileinput.js扩展-增加对文件名特殊字符过滤
- Hive Runtime Error: Unable to deserialize reduce input key from