在 Apache Ambari 中创建集群时出错(snappy 包)

Error creating a Cluster in Apache Ambari (snappy package)

我收到以下错误:

resource_management.core.exceptions.Fail: Execution of '/usr/bin/yum -d 0 -e 0 -y install snappy-devel' returned 1. Error: Package: snappy-devel-1.0.5-1.el6.x86_64 (HDP-UTILS-1.1.0.20)
       Requires: snappy(x86-64) = 1.0.5-1.el6
       Installed: snappy-1.1.0-3.el7.x86_64 (@anaconda/7.1)
           snappy(x86-64) = 1.1.0-3.el7
       Available: snappy-1.0.5-1.el6.x86_64 (HDP-UTILS-1.1.0.20)
           snappy(x86-64) = 1.0.5-1.el6

我尝试了HortonWorks的解决方案,但是没有用。

我禁用了所有存储库,只保留了一个必需的版本,但都不起作用。还是报错你已经安装了1.1.0-3.el7版本,但是你看那个包的信息是没有的。我已经安装了 1.0.5-1.el6

我的操作系统是 RHEL 7。

查看故障排除指南是否有帮助。

http://docs.hortonworks.com/HDPDocuments/Ambari-2.1.2.0/bk_ambari_troubleshooting/content/_resolving_deployment_problems.html#_dataNode_fails_to_install_on_RHEL-CentOS7

我一直在做一些工作来为 CI 测试自动化 ambari 集群,并且在 rhel7 中也遇到了这个问题。该 HDP 文档中的解决方法实际上是不可能的,因为它在安装失败时需要手动干预。话虽如此,我能够想出某种解决方法。

真正的问题是 snappy 已经在 rhel7 本身使用的 yum 存储库中,当 ambari 添加它自己的 HDP yum 存储库时,那些包含 snappysnappy-devel 的旧版本。简单地删除现有的 snappy 包是行不通的,因为 ambari 将同时安装 snappysnappy-devel。如果 ambari 只安装 snappy-devel 会拉出正确的 snappy 版本。

解决方法似乎是使用 yum 版本锁定。您不能按原样使用 yum versionlock snappy-1.0.5-1.el6.x86_64 因为实际包必须在命令调用时从 repos 中出现(在 ambari 提供自己的节点之前它不存在)。认为您可以手动将该包附加到版本锁定配置。

当我启动普通 ami 或任何其他基于 rhel7 的 vm 时,我 运行 下面的命令似乎足以让 ambari 集群配置在以后成功。

yum -y remove snappy
yum -y install yum-plugin-versionlock
echo 'snappy-1.0.5-1.el6.*' >> /etc/yum/pluginconf.d/versionlock.list