我有一个 8 节点 Hadoop 集群,其中每个节点有 24 个具有超线程的物理内核,因此有 48 个 vCPU 和 256GB 内存。
我正在尝试运行 6TB Terasort 作业。
问题:当我使用 yarn.nodemanager.resource.cpu-vcores=44(操作系统、DN、RM 等为 48 减去 4)时,Terasort 运行没有错误。但是,当我尝试使用 yarn.nodemanager.resource.cpu-vcores=88 超额订阅 CPU 时,我得到了几个 map 并减少了错误。
所有的地图失败都像“太多的获取失败......”。所有减少错误都类似于“....#Block 没有足够数量的副本....”。
我看过这个和这个链接。我检查了我的 /etc/hosts 文件,并且还碰到了我的 net.core.somaxconn 内核参数。
我不明白为什么我会使用超额订阅的 CPU 来获取地图并减少故障。
任何提示或建议都会有所帮助,并在此先感谢。