一、首先抛出异常问题
二、引发问题原因:
表连接,左表数据100W,右表数据 300W,进行左右表进行表关联,进行Count进行数据统计,等待运行结果!!!
分析问题,查看上述运行流程,即可了解上述异常,查看详细日志信息,URL:即可见到首页出现的问题
三、查看页面可见,有如下图片
四、由上图和图一可知,此MR程序为 Map端出错,出错程序问题问 内存不足,初步怀疑为 Map端内存不足,因为Hadoop体系太大,配置文件最好不要随意更改,调错,需要一个个测试修改,查询百度资料,查询得知:
可以进入HiveClient查看当前客户端的Map端和Reduce端的内存分配情况
①、查看Map端运行环境的内存
set mapreduce.map.java.opts;
②、查看Reduce端运行环境的内存
set mapreduce.reduce.java.opts;
③、查看Map端和Reduce端一个Job可以申请的内存资源
set mapreduce.map.memory.mb; set mapreduce.reduce.memory.mb;
解释
mapreduce.map.memory.mb: 一个 Map Task 可使用的内存上限(单位:MB),默认为 1024。如果 Map Task 实际使用的资源量超过该值,则会被强制杀死。
mapreduce.reduce.memory.mb: 一个 Reduce Task 可使用的资源上限(单位:MB),默认为 1024。如果 Reduce Task 实际使用的资源量超过该值,则会被强制杀死。
优化前:
修改后:
再次运行百万 SQL
当前问题 已经解决
参考文档: