troubleshooting之解决YARN队列资源不足导致的application直接失败

本文介绍了如何排查和解决YARN队列资源不足问题,当Spark作业运行时消耗的资源超出预期,可能导致任务失败。针对这一情况,提出了通过优化线程池配置以匹配资源需求的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、YARN队列资源不足导致的application直接失败的 现象
      如果说,你是基于yarn来提交spark。比如yarn-cluster或者yarn-client。你可以指定提交到某个hadoop队列上的。每个队列都是可以有自己的资源的。
      跟大家说一个生产环境中的,给spark用的yarn资源队列的情况:500G内存,200个cpu core。
比如说,某个spark application,在spark-submit里面你自己配了,executor,80个;每个executor,4G内存;每个executor,2个cpu core。你的spark作业每次运行,大概要消耗掉320G内存,以及160个cpu core。
乍看起来,咱们的队列资源,是足够的,500G内存,280个cpu core。

       首先,第一点,你的spark作业实际运行起来以后,耗费掉的资源量,可能是比你在spark-submit里面配置的,以及你预期的,是要大一些的。400G内存,190个cpu core。

那么这个时候,的确,咱们的队列资源还是有一些剩余的。但是问题是,如果你同时又提交了一个spark作业上去,一模一样的。那就可能会出问题。
      第二个spark作业,又要申请320G内存+160个cpu core。结果,发现队列资源不足。。。。
此时,可能会出现两种情况:(备注,具体出现哪种情况,跟你的YARN、Hadoop的版本,你们公司的一些运维参数,以及配置、硬件、资源肯能都有关系)
1)、YARN,发现资源不足时,你的spark作业,并没有hang在那里,等待资源的分配,而是直接打印一行fail的log,直接就fail掉了。
2)、YARN,发现资源不足,你的spark作业,就hang在那里。一直等待之前的spark作业执行完,等待有资源分配给自己来执行。

2、解决方案
     1)、在你的J2EE(我们这个项目里面,spark作业的运行,之前说过了,J2EE平台触发的,执行spark-submit脚本),限制,同时只能提交一个spark作业到yarn上去执行,确保一个spark作业的资源肯定是有的。

    2)、你应该采用一些简单的调度区分的方式,比如说,你有的spark作业可能是要长时间运行的,比如运行30分钟;有的spark作业,可能是短时间运行的,可能就运行2分钟。此时,都提交到一个队列上去,肯定不合适。很可能出现30分钟的作业卡住后面一大堆2分钟的作业。分队列,可以申请(跟你们的YARN、Hadoop运维的同学申请)。你自己给自己搞两个调度队列。每个队列的根据你要执行的作业的情况来设置。在你的J2EE程序里面,要判断,如果是长时间运行的作业,就干脆都提交到某一个固定的队列里面去把;如果是短时间运行的作业,就统一提交到另外一个队列里面去。这样,避免了长时间运行的作业,阻塞了短时间运行的作业。

    3)、你的队列里面,无论何时,只会有一个作业在里面运行。那么此时,就应该用我们之前讲过的性能调优的手段,去将每个队列能承载的最大的资源,分配给你的每一个spark作业,比如80个executor;6G的内存;3个cpu core。尽量让你的spark作业每一次运行,都达到最满的资源使用率,最快的速度,最好的性能;并行度,240个cpu core,720个task。

    4)、在J2EE中,通过线程池的方式(一个线程池对应一个资源队列),来实现上述我们说的方案。

ExecutorService threadPool = Executors.newFixedThreadPool(1);

threadPool.submit(new Runnable() {
			
@Override
public void run() {

}
			
});


<think>嗯,用户需要解决Navisworks Manage 2016安装失败的问题。这个问题很实用,用户可能是在尝试安装旧版本软件时遇到了阻碍,需要快速找到解决方案。 从用户提问来看,ta应该不是专业IT人员,但具备基本软件安装常识。需要给出清晰、分步骤的解决方案,避免过于技术化的术语。考虑到Navisworks 2016是较老的版本,兼容性问题可能是核心矛盾。 准备从几个关键角度分析:首先检查系统兼容性,因为2016版只支持到Win7/Win8;其次考虑安装包完整性问题,建议验证哈希值;然后排除权限和冲突软件干扰;最后提供回退方案(如虚拟机安装)。特别要注意提醒用户旧版本的安全风险。 用户没有提供具体错误代码,所以需要覆盖多种常见错误类型。针对.NET Framework依赖问题要重点说明,因为这是老软件的通病。另外要强调以管理员身份运行安装程序,这是容易被忽略的关键点。 引用资料中提到的版本兼容性问题很关键,但用户是安装软件本身而非加载模型,所以需要调整引用重点。性能优化部分暂时不适用,但可以保留作为补充建议。</think>Navisworks Manage 2016 安装失败通常由以下原因及解决方案导致,请逐步排查: --- ### **一、核心原因与解决方案** 1. **系统兼容性问题** - **原因**:2016版仅兼容 Windows 7 SP1 / 8.1(64位),**不支持 Win10/11 的较新版本**。 - **解决**: ✅ 检查系统版本(`Win+R` → 输入 `winver`) ✅ 若为 Win10/11: ▪ 启用 **Windows 兼容模式**:右键安装程序 → 属性 → 兼容性 → 勾选 *"以兼容模式运行"* → 选择 **Windows 8** ▪ 以 **管理员身份** 运行安装程序 2. **依赖组件缺失** - **关键组件**:.NET Framework 4.6、Visual C++ 运行库 - **解决**: ✅ 下载并安装 [.NET Framework 4.6](https://dotnet.microsoft.com/download/dotnet-framework/net46) ✅ 安装 [Visual C++ 可再发行组件合集](https://aka.ms/vs/16/release/vc_redist.x64.exe) 3. **安装包损坏或权限不足** - **解决**: ✅ 重新下载安装包(建议从 Autodesk 官方渠道获取) ✅ 关闭杀毒软件/防火墙临时 ✅ 右键安装程序 → **以管理员身份运行** 4. **残留文件冲突** - **原因**:旧版本卸载不彻底 - **解决**: ✅ 使用 [Autodesk 官方卸载工具](https://www.autodesk.com/support/uninstall-tool) 清理残留 ✅ 手动删除残留目录: ```path C:\Program Files\Autodesk\ C:\ProgramData\Autodesk\ C:\Users\{用户名}\AppData\Roaming\Autodesk\ ``` --- ### **二、进阶排查步骤** 1. **检查安装日志** - 日志路径:`C:\Users\{用户名}\AppData\Local\Temp\NavisworksManage2016_Install.log` - 搜索 `Error` 或 `Failed` 定位具体错误代码(如 `1603`) 2. **释放磁盘空间** - 确保系统盘剩余空间 **>20GB**,临时文件夹(`C:\Windows\Temp`)需可写入 3. **更新系统与驱动** - 运行 Windows Update 安装所有补丁 - 更新显卡驱动(避免 OpenGL 兼容问题) --- ### **三、替代方案** 若上述步骤无效: 🔹 **升级 Navisworks 版本**: - 安装 **Navisworks Manage 2020+**(兼容 Win10/11),通过 [Autodesk 教育版](https://www.autodesk.com/education/edu-software) 或企业授权获取。 > *注:高版本可打开旧版模型,反之可能失败[^1]* 🔹 **虚拟机安装**: - 使用 VMware/VirtualBox 创建 **Windows 7 虚拟机**,在虚拟机内运行 2016 版。 --- ### **注意事项** - **安全风险**:旧版软件不再接收安全更新,建议仅在隔离环境使用 - **数据兼容**:新版 Navisworks 可打开 2016 文件,但需注意功能差异[^2] > 附:官方支持文档参考 [Autodesk Navisworks 2016 系统要求](https://knowledge.autodesk.com/zh-hans/support/navisworks-products/troubleshooting/caas/sfdcarticles/sfdcarticles/CHS/System-requirements-for-Autodesk-Navisworks-2016-products.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值