从Ambari启动Yarn失败,报错ImportError: cannot import name yarn
解决Ambari启动YARN ResourceManager时的
ImportError: cannot import name yarn报错 我之前碰到过好几次这个Ambari启动YARN ResourceManager的报错,本质是Ambari Agent缓存的YARN服务脚本模块引用出了问题,给你梳理几个靠谱的排查和解决步骤:
清理Ambari Agent缓存(最常见的解决方法)
报错里提到的脚本来自Ambari Agent的本地缓存目录,有时候缓存的脚本会因为版本不匹配、传输损坏等原因出现模块结构错误。执行以下操作重置缓存:# 停止Ambari Agent服务 service ambari-agent stop # 删除缓存目录 rm -rf /var/lib/ambari-agent/cache # 重启Agent,重新拉取服务脚本 service ambari-agent start重启后再尝试从Ambari界面启动YARN ResourceManager,大部分情况下这个操作就能解决问题。
验证Ambari与YARN版本兼容性
你使用的Ambari版本和YARN 2.1.0.2.0所属的Hadoop发行版(比如HDP)必须严格兼容,版本不匹配会导致服务脚本里的模块引用逻辑失效。可以核对Ambari官方的版本支持矩阵,确认当前组合是被支持的。手动测试Python模块导入
直接在Agent节点上测试报错里的导入语句,定位问题根源:cd /var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/ python -c "from yarn import yarn"如果仍然报错,打开
yarn.py文件查看内容:- 确认文件里是否存在名为
yarn的类、函数或子模块 - 有时候脚本里的类名可能是大写的
Yarn,或者模块结构被修改,这种情况下优先通过清理缓存修复,尽量不要手动修改脚本(避免后续Ambari升级出问题)
- 确认文件里是否存在名为
检查文件权限
确保Ambari Agent用户(通常是ambari-agent)对缓存目录下的YARN脚本有读取权限,权限错误会导致Python无法加载模块:chown -R ambari-agent:ambari-agent /var/lib/ambari-agent/cache/common-services/YARN/
如果以上方法都无效,可以尝试重新注册Agent到Ambari Server,或者检查Ambari Server上的YARN服务包是否完整。
内容的提问来源于stack exchange,提问作者SubbuPrabhu
相关产品推荐
相关产品推荐

