1 Sqoop将业务数据SQLServer数据导入到HDFS时,出现如下错误
Container [pid=19170,containerID=container_e43_1604046194386_1457_01_000004] is running 802816B beyond the ‘PHYSICAL’ memory limit. Current usage: 1.0 GB of 1 GB physical memory used; 2.5 GB of 2.1 GB virtual memory used

错误分析:
1.0GB 任务所占的物理内存
1GB: mapreduce.map.memory.mb 参数默认设置大小(设置的是物理内存)
2.5GB:程序所占用的虚拟内存
2.1GB: mapreduce.map.memory.mb 乘以 yarn.nodemanager.vmem-pmem-ratio 得到的
其中 yarn.nodemanager.vmem-pmem-ratio是虚拟内存和物理内存的占比,在yarn-site.xml中设置,默认值是2.1
注:mapreduce.map.memory.mb和mapreduce.reduce.memory.mb默认为0,表示会根据最大堆大小 和 堆与容器的比值 设置 需要的物理内存。如果没有指定最大堆大小,则物理内存默认设置为1G
很明显,Con

在使用Sqoop将SQLServer数据导入HDFS的过程中,遇到Container内存超出限制的问题。错误显示物理内存使用1.0GB,虚拟内存使用2.5GB,而配置只允许2.1GB的虚拟内存。这可能是由于`yarn.nodemanager.vmem-pmem-ratio`设置不当导致的。解决方案包括禁用虚拟内存检查、增大`mapreduce.map.memory.mb`、调整`yarn.nodemanager.vmem-pmem-ratio`比例,以及检查是否存在内存泄漏和数据倾斜问题。
最低0.47元/天 解锁文章
1719

被折叠的 条评论
为什么被折叠?



