Ambari集群部署ZooKeeper客户端时符号链接错误的解决咨询
解决Ambari部署中Zookeeper-Client的hdp-select执行失败问题
我之前在部署HDP集群时也碰到过一模一样的错误,核心原因很清楚:/usr/hdp/current/zookeeper-client 这个路径已经存在,但它不是hdp-select工具依赖的符号链接,而是实际的目录或文件,导致版本设置命令执行失败。下面是亲测有效的分步修复方案:
1. 先确认问题路径的类型
登录到出现错误的集群节点,执行以下命令查看该路径的属性:
ls -ld /usr/hdp/current/zookeeper-client
如果输出开头是drwxr-xr-x(代表目录)或者-rw-r--r--(代表文件),而不是符号链接的lrwxrwxrwx,那就完全验证了我们的判断。
2. 备份并移除现有路径
因为这个路径不是hdp-select管理的软链,我们需要先备份避免丢失数据,再删除原路径:
# 备份到临时目录,加上时间戳方便区分 mv /usr/hdp/current/zookeeper-client /tmp/zookeeper-client-backup-$(date +%Y%m%d) # 删除原路径 rm -rf /usr/hdp/current/zookeeper-client
3. 重新执行hdp-select设置命令
现在原路径已经清空,直接运行Ambari失败的那条命令:
ambari-python-wrap /usr/bin/hdp-select set zookeeper-client 2.6.3.0-235
执行成功后,再用ls -ld检查,应该会看到/usr/hdp/current/zookeeper-client变成指向/usr/hdp/2.6.3.0-235/zookeeper-client的符号链接。
4. 回到Ambari界面重新触发部署
完成上面的操作后,回到Ambari的集群部署页面,找到失败的步骤,点击「重新运行」,让部署流程继续执行即可。
额外提醒
- 如果多个节点都出现这个错误,需要在每个受影响的节点上重复上述步骤。
- 备份的目录可以在集群部署成功、确认Zookeeper客户端正常工作后再删除,防止误删重要文件。
- 如果重新执行
hdp-select仍然报错,可以检查/usr/hdp/2.6.3.0-235/zookeeper-client目录是否存在,确保对应的HDP版本包已经正确安装在该节点上。
内容的提问来源于stack exchange,提问作者Infamous
相关产品推荐
相关产品推荐

